Getting started with DevOps Plan Helm Chart

This quick start guide shows you how to deploy DevOps Plan Helm Chart.

Before you begin

Before you can deploy DevOps Plan:
  • 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

This guide shows you how to access DevOps Plan Helm Chart and install it in your own environment.

Procedure

  1. Prepare before installation:
    Add the DevOps Plan helm chart to repository to the local client:
    helm repo add --username=[Username] --password=[CLI secret] devops-plan https://hclcr.io/chartrepo/devops-plan
    helm repo update
    You can see the list of the Helm Chart and DevOps Plan release versions. Helm installs the latest stable release version, unless you specify --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
  2. Download the hcl-devopsplan-prod chart from the devops-plan repository and unpack it into a local directory.
    helm pull devops-plan/hcl-devopsplan-prod --untar
  3. Install the helm chart with the default parameters into the namespace devopsplan with the release name hcl-devopsplan.
    helm install devopsplan devops-plan/hcl-devopsplan-prod \
      -f hcl-devopsplan-prod/values-nginx.yaml
      --namespace devopsplan \ 
      --set global.imagePullSecret=[secret-name]

    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.

  4. Install on Kubernetes Cluster in cloud (Google Kubernetes Engine and Azure Kubernetes Service).
    1. Run helm install.
      helm install hcl-devopsplan devops-plan/hcl-devopsplan-prod \
        --namespace devopsplan \
        --set global.imagePullSecret=[secret-name]
        --set ingress.type=nginx
    2. 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=
    3. 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
    4. Run helm status devopsplan -n devopsplan to retrieve the username and password for the Opensearch Dashboard, Keycloak, and PostgreSQL.
    5. Start the Keycloak home page by using https://[KEYCLOAK_EXTERNAL_IP]:8443 and trust the Keycloak certificate.
    6. Start the HCL DevOps Plan home page in your browser by using https://[DEVOPSPLAN_EXTERNAL_IP]:8190.
  5. To install with Customize Parameters setting:
    1. 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
    2. Edit the file myvalues.yaml to specify the parameter values to use when installing the DevOps Plan instance.
    3. Install the chart into the namespace devopsplan with the release name hcl-devopsplan and use the values from the myvalues.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.

  6. You can uninstall and delete the chart by using the helm delete command:
    helm delete hcl-devopsplan \
      --namespace devopsplan  
  7. To increase or decrease the number of DevOps Plan Server instances, issue the following command:
    kubectl scale --replicas=2 statefulset/hcl-devopsplan-devopsplan
  8. To set an email address for feedback, the admin must set feedback.to.emailaddress and feedback.from.emailaddress during the installation or upgrade:
    feedback:
      toEmailaddress: [TO_EMAIL_ADDRESS]
      fromEmailaddress: [FROM_EMAIL_ADDRESS]