Helm Chart Installation
GoodData.CN ready for Kubernetes will be published during May 2021. Stay tuned and watch GoodData Developers website.
Prepare Customized values.yaml for Pulsar
Apache Pulsar is a scalable high-performance message broker. Default values from the original Helm chart are a bit oversized for our needs. To decrease the resource requirements, you should use the following customized settings.
Note: On air-gapped installations, update all occurrences of
apachepulsar/pulsar to point to your local Docker registry.
storageClassName according to your setup (see
kubectl get storageclass output).
The storageClass will differ on different cloud providers and Kubernetes installations.
# file name: customized-values-pulsar.yaml components: functions: false proxy: false pulsar_manager: false toolset: false monitoring: alert_manager: false grafana: false node_exporter: false prometheus: false images: autorecovery: repository: apachepulsar/pulsar bookie: repository: apachepulsar/pulsar broker: repository: apachepulsar/pulsar zookeeper: repository: apachepulsar/pulsar zookeeper: volumes: data: name: data size: 2Gi storageClassName: mystorageclass bookkeeper: configData: PULSAR_MEM: > -Xms128m -Xmx256m -XX:MaxDirectMemorySize=128m metadata: image: repository: apachepulsar/pulsar replicaCount: 3 resources: requests: cpu: 0.2 memory: 128Mi volumes: journal: name: journal size: 5Gi storageClassName: mystorageclass ledgers: name: ledgers size: 5Gi storageClassName: mystorageclass pulsar_metadata: image: repository: apachepulsar/pulsar broker: configData: PULSAR_MEM: > -Xms128m -Xmx256m -XX:MaxDirectMemorySize=128m subscriptionExpirationTimeMinutes: "5" webSocketServiceEnabled: "true" replicaCount: 2 resources: requests: cpu: 0.2 memory: 256Mi
Apache Pulsar Chart
This command will deploy Apache Pulsar from extracted Helm chart directory
$ helm install --namespace pulsar --version 2.6.1-2 \ -f customized-values-pulsar.yaml --set initialize=true \ pulsar ./pulsar
The helm value
--set initialize=true is required only for initial installation of the Pulsar
Helm chart. Further upgrades should not contain this parameter.
Prepare Customized values.yaml for GoodData.CN
To support a broad variety of deployment options, the GoodData.CN Helm chart offers multiple parameters that you may tune to fit your environment. Check default values in the Helm chart to see further options.
Option1: Installations with SaaS Redis and Postgres
If you are running in public cloud that offers Redis and Postgres as a service and you have decided to use these services, do not deploy the Redis and Postgres subcharts. Refer to Environment Setup for the Redis and Postgres installations in the public clouds.
# file name: customized-values-gooddata-cn.yaml service: redis: hosts: - redis.cache port: 6379 clusterMode: false postgres: host: postgres.database port: 5432 username: postgres@gooddata-cn-pg password: <PG_ADMIN_PASSWORD> deployRedisHA: false deployPostgresHA: false
Option2: Installations with included Redis and Postgress
If you do not have the possibility to use Redis and Postgress as a service or you simply do not want to, then deploy the Redis and Postgres subcharts (default).
# file name: customized-values-gooddata-cn.yaml deployRedisHA: true deployPostgresHA: true
Dex identity provider settings
Based on your assessment in the Deployment Considerations section you may need to setup the Dex.
You need to setup the hostname for the Ingress, the
authHost, and the certificate for the Dex,
being it either the secret containing the certificate or annotation for the CertManager
which will provide the certificate.
You need to ensure that DNS record is created for the
See DNS Configuration section for more details.
dex: ingress: authHost: 'auth.company.com' tls: authSecretName: gooddata-cn-auth-tls annotations: kubernetes.io/ingress.class: nginx # cert-manager.io/cluster-issuer: letsencrypt-production
Note: If you do not want to use default
storageClass of your Kubernetes cluster for Redis and/or Postgres helm charts, you need to set
storageClass according to your setup (see
kubectl get storageclass output).
redis-ha: persistentVolume: storageClass: mystorageclass postgresql-ha: persistence: storageClass: mystorageclass
Note: On air-gapped clusters, you need to override all images so they are fetched from your local Docker registry:
image: # this is where GoodData.CN images are stored repositoryPrefix: "registry.company.com/gooddata" # this is where DockerHub repositories are stored dockerhubPrefix: "registry.company.com/dockermirror" # For postgresql-ha subchart, if used global: # usually the same as image.dockerhubPrefix imageRegistry: "registry.company.com/dockermirror" # Used for redis-ha subchart, if used redis-ha: image: repository: "registry.company.com/dockermirror/redis" exporter: image: "registry.company.com/dockermirror/redis_exporter" # Used for dex component, if used dex: image: name: "registry.company.com/dockermirror/dex"
GoodData.CN Application Chart
This command will deploy GoodData.CN from extracted Helm chart directory
$ helm install --namespace gooddata-cn --wait -f customized-values-gooddata-cn.yaml gooddata-cn ./gooddata-cn Release "gooddata-cn" has been installed. Happy Helming! NAME: gooddata-cn LAST DEPLOYED: Thu Mar 26 14:32:44 2020 NAMESPACE: gooddata-cn STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Congratulations, you have just deployed the GoodData.CN to your Kubernetes cluster. To proceed with the configuration, follow the Administration Guide in documentation and create your Organization by creating a custom resource in Kubernetes.
All necessary services are up and running in your Kubernetes cluster now.
Connect to GoodData.CN
As of this point of the installation, you do not have any endpoint/hostname to connect to yet. Follow the Administration Guide to understand and create your Organization(s) by creating a custom resource.
Hostname for accessing GoodData.CN platform will be provisioned by the Organization resource.