Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add latest Docker-DB versions #413

Merged
merged 23 commits into from
Sep 18, 2024
Merged
Show file tree
Hide file tree
Changes from 20 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions doc/changes/changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Changes

* [3.2.0](changes_3.2.0.md)
* [3.1.0](changes_3.1.0.md)
* [3.0.0](changes_3.0.0.md)
* [2.1.0](changes_2.1.0.md)
Expand Down Expand Up @@ -32,6 +33,7 @@
---
hidden:
---
changes_3.2.0
changes_3.1.0
changes_3.0.0
changes_2.1.0
Expand Down
15 changes: 15 additions & 0 deletions doc/changes/changes_3.2.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Integration-Test-Docker-Environment 3.1.0, released 2024-06-26
Jannis-Mittenzwei marked this conversation as resolved.
Show resolved Hide resolved

## Summary

Updated dependency constraints and supported Exasol versions.

### Supported Exasol Versions

* **7.1**: up to 7.1.26
Jannis-Mittenzwei marked this conversation as resolved.
Show resolved Hide resolved
* **8**: from 8.17.0 up to 8.31.0

## Dependencies

## Changes

Jannis-Mittenzwei marked this conversation as resolved.
Show resolved Hide resolved
6 changes: 3 additions & 3 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.27.0]
tests should run. [default: 8.31.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,8 +266,8 @@ The following config files are available:
Currently supported Exasol Versions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- **7.1**: up to 7.1.26
- **8**: from 8.17.0 up to 8.27.0
- **7.1**: up to 7.1.29
- **8**: from 8.17.0 up to 8.31.0

If you need further versions, please open an issue.

Expand Down
1 change: 1 addition & 0 deletions docker_db_config_template/7.1.29
229 changes: 229 additions & 0 deletions docker_db_config_template/8.29.1/EXAConf
Original file line number Diff line number Diff line change
@@ -0,0 +1,229 @@
[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.48.1
OSVersion = 8.48.1
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 = {{ additional_db_parameters }}
{% 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.29.1/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
Loading