Skip to main content
Version: 10.4.0

Configuration

The first section level#

build.gradle
releaseIntegrationServer {    cluster {}    clusterProfiles {}    operatorServer {}    servers {}}
NameDescription
clusterThe configuration section for cluster based setup. By default it's disabled.
clusterProfilesIn this section you can define multiple profiles for different providers and in cluster section define which profile is active now.
operatorServerOperator is installed/upgraded with help of Deploy server. It can be configured of different image/version that one is running on cluster.
serversServer configurations, currently, it's possible to configure only one.

Cluster section#

build.gradle
releaseIntegrationServer {    cluster {        debugSuspend = true        enable = true        enableDebug = true        profile = 'operator'        publicPort = 1000    }}
NameTypeDefault ValueDescription
debugSuspendOptionalfalseSuspend the start of the process before the remoting tool is attached. Take in mind that you have to attach to all processes to be able to completely run the cluster.
enableOptionalfalseIf true, cluster setup will be enabled.
enableDebugOptionalfalseIf true, debug will be enabled on all masters and workers. The exposed ports to connect will be randomly defined. You can check with docker ps which port was exposed for debugging.
profileOptionaloperatorThe way to run the setup. For now only 1 option is available - 'operator'.
publicPortOptional8080The port to connect to the cluster.

Example where to check for debugging ports to attach:

Example

Example for operator configuration:

    ...    cluster {        enable = true        profile = 'operator'        publicPort = 10001    }    clusterProfiles {        operator {            activeProviderName = "aws-openshift"            awsOpenshift {                apiServerURL = 'https://yourhost.openshiftapps.com:6443'                host = 'router-default.yourhost.openshiftapps.com'                name = 'aws-openshift-test-cluster'                oauthHostName = "oauth-openshift.yourhost.openshiftapps.com"                operatorImage = 'acierto/release-operator:1.0.6-openshift'                operatorPackageVersion = "1.0.7"            }        }    }    ...

Cluster profiles for operator#

clusterProfiles {    operator {        activeProviderName = "aws-openshift"        awsOpenshift {            apiServerURL = 'https://api.acierto.lnfl.p1.openshiftapps.com:6443'            host = 'router-default.apps.acierto.lnfl.p1.openshiftapps.com'            name = 'aws-openshift-test-cluster'            oauthHostName = "oauth-openshift.apps.acierto.lnfl.p1.openshiftapps.com"            operatorImage = 'acierto/release-operator:1.0.6-openshift'            operatorPackageVersion = "1.0.1"        }        azureAks {            clusterNodeCount = 3            clusterNodeVmSize = 'Standard_DS2_v2'            kubernetesVersion = '1.20'            location = 'northcentralus'            name = 'azure-aks-test-cluster'            skipExisting = false            azUsername = 'azure_username'            azPassword = 'secret'        }        gcpGke {            accountCredFile = 'path_to_the_cred_json_file'            accountName = 'gcp-gke-usert@apollo-playground.iam.gserviceaccount.com'            clusterNodeCount = 3            clusterNodeVmSize = 'e2-standard-2'            kubernetesVersion = '1.20.11-gke.1801'            name = 'gcp-gke-test-cluster'            projectName = 'apollo-playground'            regionZone = 'us-central1-a'            skipExisting = false        }                onPremise {            name = 'onprem-test-cluster'            clusterNodeCpus = 4            clusterNodeMemory = 15000            kubernetesVersion = '1.20.0'            skipExisting = false        }        awsEks {            region = "us-east-1"            stack = "release-operator-test"            clusterName = "release-operator-cluster-test"            nodeGroupName = "release-operator-cluster-nodegroup"            clusterNodeCount = 2            sshKeyName = "release-operator-ssh-key"            fileSystemName = "release-operator-efs-test"            kubernetesVersion = "1.20"            skipExisting = true            stackTimeoutSeconds = 1500000            stackSleepTimeBeforeRetrySeconds = 300000            route53InsycAwaitTimeoutSeconds = 300000            accessKey = "AWS access key"            secretKey = "AWS Secret key"        }    }}

Servers section#

build.gradle
releaseIntegrationServer {   servers {       controlPlane { // The name of the section, you can name it as you wish           dockerImage = "xebialabs/xl-release"            httpPort = 5516           pingRetrySleepTime = 5           pingTotalTries = 120           version = '10.2.2'       }          }   }
NameTypeDefault ValueDescription
dockerImageOptionalNoneWhen this property is specified, docker based setup will be performed. The name of the docker image, without version. Version is specified in the separate field or dedicated from gradle properties.
httpPortOptionalRandom portThe HTTP port for Release server.
pingRetrySleepTimeOptional10During the startup of the server we check when it's completely booted. This property configures how long to sleep (in seconds) between retries.
pingTotalTriesOptional60During the startup of the server we check when it's completely booted. This property configures how many times to retry.
versionOptionalNoneIt can be specified in several ways. Or as a gradle property xlReleaseVersion, via parameter or in gradle.properties file or explicitly via this field.

AWS Openshift profile#

activeProviderName = "aws-openshift"

NameTypeDefault ValueDescription
apiServerURLMandatory-The URL to your OpenShift cluster server API
hostMandatory-The public host on which cluster will be available to interact with. Basically it is your OpenShift router URL.
keystorePassphraseOptionaltest123Keystore password to encrypt sensitive information in CIs
nameMandatory-The name of your cluster.
operatorImageOptionalxebialabs/release-operator:1.2.0-openshiftThe image of operator which is going to be used to install the Reploy cluster
operatorPackageVersionOptional1.0.0We deploy operator with help of Release, this is a version which will be used as a application package version.
oauthHostNameMandatory-OAuth host name of your OpenShift cluster. It is used to get a new token based on your credentials. This token is required to interact with OpenShift cluster.
repositoryKeystoreOptionalProvidedKeystore to encrypt sensitive information in CIs
storageClassOptionalaws-efsYou can use another storage class, but you have to be sure that it is NFS based, otherwise it won't work.

Azure AKS profile#

activeProviderName = "azure-aks"

NameTypeDefault ValueDescription
azUsernameMandatory-Azure username to be used with az cli tool.
azPasswordMandatory-Azure password to be used with az cli tool.
clusterNodeCountOptional2Number of the nodes that will be created during cluster creation on Azure.
clusterNodeVmSizeOptionalStandard_DS2_v2 (Azure default value)Node VM size named on Azure.
kubernetesVersionOptionalDefault Azure version is 1.20The kubernetes version that will be custom string for each provider.
locationMandatory-The Azure location that represents geo location where cluster will be running.
nameMandatory-The name of your cluster.
operatorImageOptionalxebialabs/release-operator:1.2.0The image of operator which is going to be used to install the Release cluster
operatorPackageVersionOptional1.2.0We deploy operator with help of Deploy, this is a version which will be used as a application package version.
skipExistingOptionaltrueFor some cluster resources there are checks if resources exist, if set to true skip creation.
storageClassOptional-Storage class prefix. On Azure with prefix are created new classes for file and disk storage.

GCP GKE profile#

activeProviderName = "gcp-gke"

NameTypeDefault ValueDescription
accountCredFileOptional-A file path to read the access token credentials file.
accountNameMandatory-GCP user account that will be used with gcloud plugin.
clusterNodeCountOptional3Number of the nodes that will be created during cluster creation on GCP.
clusterNodeVmSizeOptionalMedium_DS2_v2 (GCP default value)Node VM size named on GCP.
kubernetesVersionOptional1.20.11-gke.1801The kubernetes version that will be custom string for each provider.
nameMandatory-The name of your cluster.
operatorImageOptionalxebialabs/release-operator:1.2.0The image of operator which is going to be used to install the Release cluster
operatorPackageVersionOptional1.2.0We deploy operator with help of Deploy, this is a version which will be used as a application package version.
projectNameMandatory-The GCP project in which GKE cluster will be created.
regionZoneMandatory-The cluster GEO zone where cluster instances will be located.
skipExistingOptionaltrueFor some cluster resources there are checks if resources exist, if set to true skip creation.
storageClassOptionalstandardYou can use another storage class, but you have to be sure that it is NFS based, otherwise it won't work.

Onprem Minikube profile#

activeProviderName = "onprem"

NameTypeDefault ValueDescription
clusterNodeCpusOptional-Number of CPUs that will be used by cluster.
clusterNodeMemoryOptional-Memory size in MB that will be used by cluster.
kubernetesVersionOptional1.20.0The kubernetes version that will be custom string for each provider.
nameMandatory-The name of your cluster.
operatorImageOptionalxebialabs/release-operator:1.2.0The image of operator which is going to be used to install the Release cluster
operatorPackageVersionOptional1.2.0We deploy operator with help of Deploy, this is a version which will be used as a application package version.
skipExistingOptionaltrueFor some cluster resources there are checks if resources exist, if set to true skip creation.
storageClassOptionalstandardYou can use another storage class, but you have to be sure that it is NFS based, otherwise it won't work.

AWS EKS profile#

activeProviderName = "aws-eks"

NameTypeDefault ValueDescription
accessKeyOptional-AWS AccessKey to access aws cli tool.
secretKeyOptional-AWS SecretKey to access aws cli tool.
regionOptional'us-east-1'Region where the cluster to be created.
stackOptional'release-operator-test'Name of the AWS stack.
clusterNameOptional'release-operator-cluster-test'Name of the AWS EKS Cluster.
nodeGroupNameOptional'release-operator-cluster-nodegroup'Name of the nodeGroup. At present only two node groups are support.
clusterNodeCountOptional2Number of the worker nodes to be created within node group, max node count of each group is 8.
kubernetesVersionOptionalDefault version is 1.20The kubernetes version that will be custom string for each provider.
sshKeyNameOptional'release-operator-ssh-key'ssh key for accessing Amazon EC2 instance.
fileSystemNameOptional'release-operator-efs-test'AWS EFS file system name.
operatorImageOptionalxebialabs/release-operator:1.2.0The image of operator which is going to be used to install the Release cluster
operatorPackageVersionOptional1.2.0We deploy operator with help of Deploy, this is a version which will be used as a application package version.
skipExistingOptionaltrueFor some cluster resources there are checks if resources exist, if set to true skip creation.
stackTimeoutSecondsOptional1500000Maximum wait time for 'Stack Creation' or 'Stack Deletion' in seconds.
stackSleepTimeBeforeRetrySecondsOptional300000Polling period in seconds for 'Stack Creation' or 'Stack Deletion'.
route53InsycAwaitTimeoutSecondsOptional300000Polling period in seconds for route53 provisioning.
storageClassOptional"aws-efs && gp2'Use gp2 storageclass for postgres and rabbitmq and use 'aws-efs' storageclass for xl-release pods

Operator server section#

NameTypeDefault ValueDescription
dockerImageRequiredNoneIt has to be specified explicitly. Example: xebialabs/xl-deploy
httpPortOptionalRandom portPublic http port for Deploy server. Can be useful in case of troubleshooting of the failed deployment of operator.
pingRetrySleepTimeOptional10During the startup of the server we check when it's completely booted. This property configures how long to sleep (in seconds) between retries.
pingTotalTriesOptional60During the startup of the server we check when it's completely booted. This property configures how many times to retry.
versionRequiredNoneIt has to be specified explicitly.