Getting started with DevOps Plan Helm Chart
This quick start guide shows you how to deploy DevOps Plan Helm Chart.
Before you begin
- You must have Kubernetes version 1.20.0 or higher, kubectl CLI, and Helm 3.16.
- You must have the Image and Helm Chart. The DevOps Plan images and Helm chart can be accessed at the HCL Container Registry (hclcr.io) and Helm Repository or at HCL Harbor.
- You must obtain a Harbor CLI secret. Login to https://hclcr.io with your HCL softaware ID, selecting LOGIN VIA OIDC
PROVIDER, open your User Profile from the top right corner, and copy the CLI secret. Use
this string as the CLI secret in the secret
docker-registry
command. - DevOps Plan requires a PostgreSQL database and a Keycloak to create TeamSpace, Applications, and add users to sign in. The PostgreSQL database and a Keycloak may be running in your cluster or on hardware that resides outside of your cluster. The values used to connect to the database and a Keycloak are required when installing DevOps Plan. The helm chart provides the PostgreSQL database by default. You can disable and use your own PostgreSQL database and a Keycloak.
- Persistent Volumes that will hold the devopsplan data, config, share and logs folders for DevOps Plan are required. If your cluster supports default StorageClass (SC) and dynamic volume provisioning, you will not need to create a SC and PersistentVolume (PV) before installing DevOps Plan. If your cluster does not support default SC and dynamic volume provisioning, you will need to either ensure a SC and PV is available or disable the persistent volume by setting persistence.enabled to false before installing DevOps Plan.
- The helm chart enables the Keycloak Single Sign On feature installed with helm chart. You can disable the Keycloak that is installed with the helm chart and use an external Keycloak instance installed outside of the helm chart.
About this task
Procedure
-
Prepare before installation:
Add the DevOps Plan helm chart to repository to the local client:
You can see the list of the Helm Chart and DevOps Plan release versions. Helm installs the latest stable release version, unless you specifyhelm repo add --username=[Username] --password=[CLI secret] devops-plan https://hclcr.io/chartrepo/devops-plan helm repo update
--version [CHART VERSION]
to the helm install command.Create a namespace called devopsplan.kubectl create namespace devopsplan
Create a pull secret into namespace devopsplan.kubectl create secret docker-registry [secret-name] \ --docker-server=hclcr.io \ --docker-username=[Username] \ --docker-password=[CLI secret] \ --namespace=devopsplan
-
Download the
hcl-devopsplan-prod
chart from thedevops-plan
repository and unpack it into a local directory.helm pull devops-plan/hcl-devopsplan-prod --untar
-
Install the helm chart with the default parameters into the namespace
devopsplan
with the release namehcl-devopsplan.
helm install devopsplan devops-plan/hcl-devopsplan-prod \ -f hcl-devopsplan-prod/values-nginx.yaml --namespace devopsplan \ --set global.imagePullSecret=[secret-name]
- If you plan to use an external PostgreSQL database, see Installing DevOps Plan with external databases and optional email server settings.
- If you plan to use external Keycloak, see Enabling the DevOps Plan Keycloak Single Sign On feature.
- When providing your own cluster, if the default storage class does not support the ReadWriteMany (RWX) accessMode, then an alternative class must be specified to support RWX accessMode.
Run
helm status hcl-devopsplan -n devopsplan
to retrieve the username and password for the Opensearch Dashboard, KeyCloak, and PostgreSQL databases.Start the Keycloak home page by using
https://[VirtualMachine-IP]:30104
and trust the keycloak certificate.Start the DevOps Plan Home page in your browser by using
https://[VirtualMachine_IP]:30102
. -
Install on Kubernetes Cluster in cloud (Google Kubernetes Engine and Azure Kubernetes
Service).
- Run
helm install
.helm install hcl-devopsplan devops-plan/hcl-devopsplan-prod \ --namespace devopsplan \ --set global.imagePullSecret=[secret-name] --set ingress.type=nginx
- Run
kubectl get services
to get the nginx, analytics, keycloak, and devopsplan EXTERNAL-IP addresses.NGINX_EXTERNAL_IP= ANALYTICS_EXTERNAL_IP= KEYCLOAK_EXTERNAL_IP= DEVOPSPLAN_EXTERNAL_IP=
- Run
helm upgrade
.helm upgrade hcl-devopsplan devops-plan/hcl-devopsplan \ --namespace devopsplan \ --version [CHART VERSION] \ --set global.imagePullSecret=[secret-name] \ --set ingress.type=nginx \ --set nginx.urlMapping=https://[NGINX_EXTERNAL_IP]:5602 \ --set keycloak.urlMapping=https://[KEYCLOAK_EXTERNAL_IP]:8443 \ --set analytics.urlMapping=https://[ANALYTICS_EXTERNAL-IP]:8290 \ --set service.urlMapping=https://[DEVOPSPLAN_EXTERNAL-IP]:8190
- Run
helm status devopsplan -n devopsplan
to retrieve the username and password for the Opensearch Dashboard, Keycloak, and PostgreSQL. - Start the Keycloak home page by using
https://[KEYCLOAK_EXTERNAL_IP]:8443
and trust the Keycloak certificate. - Start the HCL DevOps Plan home page in your browser by using
https://[DEVOPSPLAN_EXTERNAL_IP]:8190
.
- Run
-
To install with Customize Parameters setting:
- Get a copy of the
values.yaml
file from the helm chart so that you can update it with values used by the install.helm inspect values devops-plan/hcl-devopsplan-prod > my_values.yaml
- Edit the file
myvalues.yaml
to specify the parameter values to use when installing the DevOps Plan instance. - Install the chart into the namespace
devopsplan
with the release namehcl-devopsplan
and use the values from themyvalues.yaml
file.helm install hcl-devopsplan devops-plan/hcl-devopsplan \ --namespace devopsplan \ --values my_values.yaml
You can list all releases by using
helm list
.
- Get a copy of the
-
You can uninstall and delete the chart by using the helm delete command:
helm delete hcl-devopsplan \ --namespace devopsplan
-
To increase or decrease the number of DevOps Plan Server instances,
issue the following command:
kubectl scale --replicas=2 statefulset/hcl-devopsplan-devopsplan
-
To set an email address for feedback, the admin must set
feedback.to.emailaddress
andfeedback.from.emailaddress
during the installation or upgrade:feedback: toEmailaddress: [TO_EMAIL_ADDRESS] fromEmailaddress: [FROM_EMAIL_ADDRESS]