Skip to content

Commit

Permalink
#396: Added new Docker-DB versions (#404)
Browse files Browse the repository at this point in the history
fixes #396
  • Loading branch information
tomuben authored Jun 5, 2024
1 parent c7ff2e2 commit a77a910
Show file tree
Hide file tree
Showing 66 changed files with 6,306 additions and 7 deletions.
15 changes: 13 additions & 2 deletions doc/changes/changes_3.1.0.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,21 @@
# Integration-Test-Docker-Environment X.Y.Z, released TBD
# Integration-Test-Docker-Environment 3.1.0, released t.b.d.

## Summary

TBD
t.b.d.


### Supported Exasol Versions

* **7.1**: up to 7.1.26
* **8**: from 8.17.0 up to 8.27.0

## Dependencies

* Constrain docker dependency to `>= 4.0.0, < 7.0.0`, for further details see [docker/docker-py#3223](https://github.com/docker/docker-py/issues/3223)

## Changes

* Moved `pytest` dependency to development dependencies
* Add explicit dependency and version constraint (`<= 0.20.1`) for `docutils`
* #396: Added new docker-db versions
7 changes: 3 additions & 4 deletions doc/user_guide/user_guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ The following options are available to customize the test environment.
containers

--docker-db-image-version TEXT Docker DB Image Version against which the
tests should run. [default: 8.18.1]
tests should run. [default: 8.27.0]

--docker-db-image-name TEXT Docker DB Image Name against which the tests
should run. [default: exasol/docker-db]
Expand Down Expand Up @@ -266,9 +266,8 @@ The following config files are available:
Currently supported Exasol Versions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- **7.0**: up to 7.0.20 **except 7.0.5**
- **7.1**: up to 7.1.17
- 8.17.0 and 8.18.1
- **7.1**: up to 7.1.26
- **8**: from 8.17.0 up to 8.27.0

If you need further versions, please open an issue.

Expand Down
1 change: 1 addition & 0 deletions docker_db_config_template/7.1.18
1 change: 1 addition & 0 deletions docker_db_config_template/7.1.19
1 change: 1 addition & 0 deletions docker_db_config_template/7.1.20
1 change: 1 addition & 0 deletions docker_db_config_template/7.1.21
1 change: 1 addition & 0 deletions docker_db_config_template/7.1.22
1 change: 1 addition & 0 deletions docker_db_config_template/7.1.23
1 change: 1 addition & 0 deletions docker_db_config_template/7.1.24
1 change: 1 addition & 0 deletions docker_db_config_template/7.1.25
1 change: 1 addition & 0 deletions docker_db_config_template/7.1.26
231 changes: 231 additions & 0 deletions docker_db_config_template/8.20.0/EXAConf
Original file line number Diff line number Diff line change
@@ -0,0 +1,231 @@
[Global]
Revision = 17
Checksum = COMMIT
ClusterName = cl4
Platform = Docker
LicenseFile = /exa/etc/license.exasol_license
CoredPort = 325
SSHPort = {{ ssh_port }}
IssueTracker = Jira
XMLRPCPort = 443
WebUIBackendPort = 4444
WebUIDomain = exacluster.local
EnableLoadBalancer = False
AuthenticationToken = bVNQU0lRT0dhQWhmck5kZDpjU3RwUUJsZkxxalhKTUVpbkVXVHBNd1ZRQlpkenpzTlF5VllxeGNBd3ZPY1JRQUZhQ3VZWGdDcXZLR0p3SWd4
# 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
# The meta package name, which was installed by C4 to run this system.
MetaPackage = none
ConfVersion = 8.32.0
OSVersion = 8.32.0
DBVersion = {{ db_version }}
ImageVersion = {{ db_version }}
# 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
[[exaadm]]
ID = 499
[[exadbadm]]
ID = 498
[[exastoradm]]
ID = 497
[[exabfsadm]]
ID = 496
[[exasaasadm]]
ID = 495

[Users]
[[root]]
ID = 0
Group = root
LoginEnabled = True
AdditionalGroups = exausers, exaadm, exadbadm, exastoradm, exabfsadm, exasaasadm
AuthorizedKeys = {{ authorized_keys }}
[[exadefusr]]
ID = 500
Group = exausers
LoginEnabled = False
AdditionalGroups = exaadm, exadbadm, exastoradm, exabfsadm, exasaasadm
[[exasaasusr]]
ID = 499
Group = exausers
LoginEnabled = False
AdditionalGroups = exasaasadm,

[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 = F0EA64D47F374A00B0530772981C559EE1C59086
DockerVolume = n11
[[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
BlockSize = 4 KiB
StripeSize = 256 KiB
# User and group IDs that own this volume (e. g. '1000:1005')
Owner = 500 : 500
Permissions = rwx
# OPTIONAL: shared volumes can be opened (for writing) by multiple clients simultaneously
Shared = True
# OPTIONAL: I/O priority (0 = highest, 20 = lowest)
Priority = 10

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

# An EXASOL database
[DB : DB1]
# Unique id of this database.
ID = aCbUZhU3R8eEc0UIDS7wQw
# Version nr. of this database.
Version = {{ db_version }}
# Memory size over all nodes (e. g. '1 TiB').
MemSize = {{ mem_size }}
Port = {{ db_port }}
# 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 = slc-6.0.0-c4-5-standard-EXASOL-8.0.0/ScriptLanguages-standard-EXASOL-8.0.0-slc-v6.0.0-PB5EHDLN
AutoStart = True
{% if additional_db_parameters %}
Params = -sandboxCHROOT=/opt/exasol/cos-8.32.0/sbin/nsexec_chroot {{ additional_db_parameters }}
{% else %}
Params = -sandboxCHROOT=/opt/exasol/cos-8.32.0/sbin/nsexec_chroot
{% endif %}

# 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
# Additional URLs used to search for JDBC drivers, like: bucketfs://bfs2/bucket3/jdbcdir or file:///exa/etc/jdbc_drivers.
AdditionalURLs =
# 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 = {{ bucketfs_port }}
# HTTPS port number (0 = disabled)
HttpsPort = 0
SyncKey = bDRYa3pCNXRwaW9OR3k2NjJ2TGpyQ3YweXZEOVUyanQ=
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

[[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
10 changes: 10 additions & 0 deletions docker_db_config_template/8.20.0/init_db.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env bash

set -euo pipefail

DEVICE_SIZE_IN_MEGABYTES=$1

# Setup directory "exa" with pre-configured EXAConf to attach it to the exasoldb docker container
mkdir -p /exa/{etc,data/storage}
cp EXAConf /exa/etc/EXAConf
dd if=/dev/zero of=/exa/data/storage/dev.1 bs=1M count=1 seek="$DEVICE_SIZE_IN_MEGABYTES"
Loading

0 comments on commit a77a910

Please sign in to comment.