Configure deploy target configuration

Specifies the specific information that is needed for the pipeline:

  • solution deploy information
  • security context (how to login into the cluster)
  • helm chart repository for fetching already created solution helm chart

Open the configuration-controller

Use POST method Create a runtime configuration for creating the configuration.

Request parameters

Parameter TYPE Description
configurationName path parameter (String) The name of the configuration: ssob-sdo-solution-deploy
runtimeName path parameter (String) The name of the specific Solution Envoy, e.g. cpd-runtime-default
data body parameter (YAML) The configration values (Body Parameters)

Configuration Parameters (body parameter)

The following table lists the required configurable parameters for the Solution Envoy configuration.

Parameter Description
deployment.chart.s3.repositoryEndpoint The address of the internal s3 service (minio) of the installation, e.g. gitlab-minio-svc.foundation.svc.cluster.local:9000
mode Used storage for the helm charts (possible value s3)
deployment.chart.s3.accessKey Access key for the s3 storage (see Getting accessKey and secretAccessKey for minio)
deployment.chart.s3.bucketName Used bucket name of the s3 storage (you should ensure that the bucket is already present), e.g. helm-charts-default
deployment.chart.s3.disableSsl Specifies if ssl is disabled
deployment.chart.s3.region Region of the s3 storage (region in default installation is us-east-1)
deployment.chart.s3.secretAccessKey Secret access key for the s3 storage (see Getting accessKey and secretAccessKey for minio)
runtime.url The url of the Solution Envoy
securityContext.mode.oc Used login to get kubernetes access (with oc the OpenShift CLI is used)
securityContext.oc.token Token for the oc login. It is required that the serviceaccount of this token is able to contact the tiller of the cpd namespace (see Getting valid oc login token)
securityContext.oc.server Url of the OpenShift cluster

The following table lists the optional configurable parameters for the Solution Envoy configuration, these variables have default values if nothing is set.

Parameter Description Default value
deployment.timeout Set the timeout for the helm deployment in sec 300
deployment.useTls Set using the --tls flag for the helm deployment true
deployment.tlsCaCert Set TLS CA certificate file for the helm deployment using helm --tls-ca-cert flag nil
deployment.tlsCert Set TLS CA certificate file for the helm deployment using helm --tls-cert flag nil
deployment.tlsKey Set TLS key file for the helm deployment using helm --tls-key flag nil
deployment.skipInit Skip the helm init --client-only command false
deployment.additionalParameters Allows setting addional helm parameters for the helm deployment nil
securityContext.oc.skipTls Skip the tls verification during oc login command false

Example body parameter (data)

deployment:
  chart:
    mode: s3
    s3: 
      accessKey: <ACCESS_KEY>
      bucketName: helm-charts-default
      disableSsl: true 
      region: us-east-1 
      secretAccessKey: <SECRET_KEY>
      repositoryEndpoint: gitlab-minio-svc.foundation.svc.cluster.local:9000
runtime: 
  url: "https://cpd-runtime-default.apps.openshift-cluster.mydomain.cloud"
securityContext:
  mode: oc
  oc:
    token: eyJ...URd.eyJ...trAS.zte...FDW
    server: https://api.openshift-cluster.mydomain.cloud:6443

Getting accessKey and secretAccessKey for minio

The values for accessKey and secretAccessKey can be found in the minio secret of the namespace where minio was installed, e.g.

For a minio service provided by GitLab the values can be found in a yet exisiting secret, that is located in the namespace where GitLab was installed. By default the secret ends with -minio-secret.

oc -n gitlab get secret gitlab-minio-secret -o jsonpath='{.data.accesskey}'| base64 -d
oc -n gitlab get secret gitlab-minio-secret -o jsonpath='{.data.secretkey}'| base64 -d

The values of the secret have to be base64 decoded.

Getting valid oc login token

First search for the secrets of the cpd-admin-sa in the cpd namespace, where the cpd tiller is installed:

oc -n cpd get secret | grep cpd-admin-sa

Then use one of the two cpd-admin-sa-tokens (e.g. cpd-admin-sa-token-24zzk) and get the token:

oc -n cpd get secret cpd-admin-sa-token-24zzk -o jsonpath='{.data.token}' | base64 -d