exasol / integration-test-docker-environment

A docker-based environment for integration tests with the EXASOL DB.
https://exasol.github.io/integration-test-docker-environment/
MIT License
6 stars 2 forks source link

Test compatibility with upcoming Exasol 8.0 release #189

Closed redcatbear closed 2 years ago

redcatbear commented 2 years ago

We need to ensure that ITDE works with the upcoming Exasol 8.0 release.

The actual upgrade to 8.0 will be done in #190

Acceptance Criteria

  1. [ ] Successful tests with a Docker image of an Exasol 8.0 snapshot
Nicoretti commented 2 years ago

integration-test-docker-environment test have been run successfully with the provided Exasol 8.0 (7.2) container image. :heavy_check_mark:

image

For testing the container image, it was necessary to create a partially specialized template (with help from @tkilias and @tomuben ) for integration-test-docker-environment see below:

[Global]
    Revision = 15
    Checksum = COMMIT
    ClusterName = cl4
    Platform = Docker
    LicenseFile = /exa/etc/license.xml
    CoredPort = 325
    SSHPort = 22
    XMLRPCPort = 443
    WebUIBackendPort = 4444
    WebUIDomain = exacluster.local
    EnableLoadBalancer = False
    AuthenticationToken = SkNyZnVYU2tjTGd4WEx5SzpsSE5zbVlQWlFtaWVKSHpqdkhVbEpVa2lta29wUnhwUHdEZlNTR21iVm1LcklSTGZNcFphY0ZKQ0xFRGJpRlJr
    # List of networks for this cluster: 'private' is mandatory, 'public' is optional.
    Networks = private
    # Comma-separated list of nameservers for this cluster.
    NameServers = {{ name_servers }}
    # Path to c4 unix domain socket, used for deployments of new clusters and nodes.
    C4Socket = /var/run/c4_socket
    Timezone = Europe/Berlin
    LicenseRAWMEMWarnThreshold = 80
    # Nr. of hugepages ('0' = disabled, 'host' = manually configured on the host, 'auto' = set automatically based on DB config)
    Hugepages = 0
    StorageConnectionThreads = 16
    StorageMaxConnections = 1024
    ConfVersion = 7.2.15
    OSVersion = 7.2.15
    REVersion = 7.2.1
    DBVersion = 7.2.9
    ImageVersion = 7.2.15
    # Cored only accepts incomming messages from privileged ports (port number less than 1024).
    CoredUsePrivilegedPorts = True
    # Cored only accepts incomming messages from its own subnet.
    CoredAllowOnlySameSubnet = True
    # Which subnets Cored will allow messages from. Each subnet must be sepparated by a comma.
    # A subnet is either an IPv4 or IPv6 address in CIDR notation.
    CoredSubnets =

# SSL options
[SSL]
    # The SSL certificate, private key and CA for all EXASOL services
    Cert = {{ certificate_dir }}/cert.crt
    CertKey = {{ certificate_dir }}/cert.key
    CertAuth = {{ certificate_dir }}/rootCA.crt
    # Options to verify certificates: none, optional, required
    CertVerify = none
    # Domain name in the certifcate
    CertDomainName =

# Docker related options
[Docker]
    # The directory that contains all data related to this docker cluster
    # (except for mapped devices)
    RootDir = /exa/etc
    # The EXASOL docker image used for all containers of this cluster
    Image = exasol/docker-db:latest
    # The type of storage devices for this cluster: 'block' or 'file'
    DeviceType = file
    # Comma-separated list of volumes to be mounted in all containers (e. g. '/mnt/my_data:/exa/my_data:rw' )
    # These user-defined volumes are mounted additionally to the internal ones (like the node root volume)
    AdditionalVolumes =

[Groups]
    [[root]]
        ID = 0
    [[exausers]]
        ID = 500
    [[exadbadm]]
        ID = 1001
    [[exastoradm]]
        ID = 1002
    [[exabfsadm]]
        ID = 1003
    [[exaadm]]
        ID = 1004

[Users]
    [[root]]
        ID = 0
        Group = root
        LoginEnabled = True
        AdditionalGroups = exausers, exadbadm, exastoradm, exabfsadm, exaadm
    [[exadefusr]]
        ID = 500
        Group = exausers
        LoginEnabled = False
        AdditionalGroups = exadbadm, exastoradm, exabfsadm, exaadm

[Node : 11]
    PrivateNet = {{private_network}}
    PublicNet = 
    Name = n11
    # Affinity decides how this node is used in the cluster. i.e, the possibility to become master
    Affinity = 11
    UUID = 6FA0C6FCF5A645FCB6CB00C383349993AD9BEE78
    DockerVolume = n11
    # Ports to be exposed (container : host)
    ExposedPorts = 8888:8899, 6583:6594
    [[Disk : disk1]]
        Component = exastorage
        Devices = dev.1
        Mapping = dev.1:/exa/data/storage

# Global EXAStorage options
[EXAStorage]
    # Enable or disable background recovery / data restoration (does not affect on-demand recovery)
    BgRecEnabled = True
    # Max. throughput for background recovery / data restoration (in MiB/s)
    BgRecLimit =
    # Space usage threshold (in percent, per node) for sending a warning
    SpaceWarnThreshold = 90

# An EXAStorage volume
[EXAVolume : DataVolume1]
    # Type of volume: 'data' | 'archive'
    Type = data
    # Volume size (e. g. '1 TiB')
    Size = {{ disk_size }}
    # Name of the disk to be used for this volume.
    # This disk must exist on all volume nodes.
    Disk = disk1
    # Comma-separated list of node IDs for this volume (put dedicated redundancy nodes at the end, if any)
    Nodes = 11
    # OPTIONAL: Nr. of master nodes for this volume. Remaining nodes will be used for redundancy only.
    NumMasterNodes = 1
    # Desired redundancy for this volume
    Redundancy = 1
    # User and group IDs that own this volume (e. g. '1000:1005')
    Owner = 500 : 500
    Permissions = rwx
    BlockSize = 4 KiB
    StripeSize = 256 KiB
    # OPTIONAL: shared volumes can be opened (for writing) by multiple clients simultaneously
    Shared = True
    # OPTIONAL: I/O priority (0 = highest, 20 = lowest)
    Priority = 10

# An EXASOL database
[DB : DB1]
    # Unique id of this database.
    ID = Rad4R9RrSkmvlqlR9tSTHA
    # Version nr. of this database.
    Version = 7.2.9
    # Memory size over all nodes (e. g. '1 TiB').
    MemSize = {{ mem_size }}
    Port = 8888
    # User and group IDs that own this database (e. g. '1000:1005').
    Owner = 500 : 500
    # Comma-separated list of node IDs for this DB (put reserve nodes at the end, if any).
    Nodes = 11
    # Nr. of initially active nodes for this DB. The remaining nodes will be reserve nodes.
    NumActiveNodes = 1
    # Name of the data volume to be used by this database.
    DataVolume = DataVolume1
    EnableAuditing = True
    BuiltinScriptLanguageName = ScriptLanguages-release-standard-exasol-7.1.0-1.1.0
    AutoStart = True
    # JDBC driver configuration
    [[JDBC]]
        # BucketFS that contains the JDBC driver
        BucketFS = bfsdefault
        # Bucket that contains the JDBC driver
        Bucket = default
        # Directory within the bucket that contains the drivers
        Dir = drivers/jdbc
    # Oracle driver configuration
    [[Oracle]]
        # BucketFS that contains the JDBC drivers
        BucketFS = bfsdefault
        # Bucket that contains the JDBC drivers
        Bucket = default
        # Directory within the bucket that contains the drivers
        Dir = drivers/oracle

# The default BucketFS (auto-generated)
[BucketFS : bfsdefault]
    Owner = 500 : 500
    # HTTP port number (0 = disabled)
    HttpPort = 6583
    # HTTPS port number (0 = disabled)
    HttpsPort = 0
    SyncKey = ekJ2aGZrOHpoSUFZU09EYVlNVnVBR05Vbll3b3gyUnc=
    SyncPeriod = 30000
    mode = rsync
    bucketvolume = None
    # The default bucket (auto-generated)
    [[Bucket : default]]
        # ReadPasswd is "read" (without quotes)
        ReadPasswd = cmVhZAo=
        # WritePasswd is "write" (without quotes)
        WritePasswd = d3JpdGU=
        Public = True
        Name = default
        AdditionalFiles = EXAClusterOS:/usr/opt/EXASuite-7/ScriptLanguages/*

    [[Bucket : myudfs]]
        # ReadPasswd is "read" (without quotes)
        ReadPasswd = cmVhZAo=
        # WritePasswd is "write" (without quotes)
        WritePasswd = d3JpdGU=
        Public = True
        Name = myudfs

    [[Bucket : jdbc_adapter]]
        # ReadPasswd is "read" (without quotes)
        ReadPasswd = cmVhZAo=
        # WritePasswd is "write" (without quotes)
        WritePasswd = d3JpdGU=
        Public = True
        Name = jdbc-adapter

# RemoteLogging : cloud_data_remote_volume/logs
[Logging]
    LogRotationTypes = local,
    RemoteLogRotationVolume = cloud_data_remote_volume
    RemoteLogRotationPrefix = logs