Installing DevOps Plan with DevOps Control

DevOps Control provides Git hosting, code review, and team collaboration. It is similar to GitHub, Bitbucket, and GitLab. DevOps Control is based on the open-source Gitea project.

  1. Create an imagePullSecret named ibm-entitlement-key as explained in step 2 of Getting Started with DevOps Plan Helm Chart on IBM OpenShift .
  2. Pull the Helm Chart:
       helm pull ibm-helm/ibm-devopsplan-prod --untar
  3. Install the Helm Chart with the default parameters into namesapce devopsplan with the release name ibm-devops-plan:
      helm install ibm-devopsplan ./ibm-devopsplan-prod \
        -f ibm-devopsplan-prod/control-Openshift.yaml  \
        --namespace devopsplan \
        --set global.imagePullSecrets={ibm-entitlement-key} \
        --set global.domain=[openshift-cluster-dns-name] \
        --set control.enabled=true
        --set control.gitea.config.indexer.REPO_INDEXER_SKIP_TLS_VERIFY=true
        --set control.gitea.config.migrations.ALLOWED_DOMAINS="<the domain from where you want to migrate>"
    Note: When setting --set control.gitea.config.migrations.ALLOWED_DOMAINS, include the domains allowlist for migrating repositories. Multiple domains can be configured by separating them with commas. Wildcards are supported. For example, github.com,*.github.com.
    Note: DevOps Control uses DevOps Plan OpenSearch to search and fetch DevOps Plan work items and to associate them with Pull Requests. The DevOps Plan OpenSearch instance endpoint is secured by self-signed certificate. REPO_INDEXER_SKIP_TLS_VERIFY must be set to true and is used by DevOps Control to determine if it should skip server certificate validation while using DevOps Plan OpenSearch endpoints.
  4. Run helm status ibm-devopsplan -n devopsplan to retrieve URLs, username and password.
    Start the DevOps Plan home page in your browser by using https://ibm-devopsplan.$INGRESS_DOMAIN/.
    DevOps Control uses the internal PostgreSQL database by default. If you plan to install or upgrade the helm charts with an external PostgreSQL database, you must add the following setting to the helm upgrade --install command.
      --set control.postgresql.host=[CONTROL_DATABASE_SERVER_NAME] \
      --set control.postgresql.dbName=[CONTROL_DATABASE_NAME] \
      --set control.postgresql.username=[CONTROL_DATABASE_USERNAME] \
      --set control.postgresql.password=[CONTROL_DATABASE_PASSWORD] 

    Helm rollback is not supported in Control 2.0.2 due to the following reasons:

    • These include storage and runtime topology changes in Control, such as PersistentVolumeClaim (PVC) naming transitions and cache component transitions.

    • Helm rollback attempts to restore old manifest expectations, but the cluster resources now adhere to new names and ownership. This discrepancy can lead to rollback failures even when data and resources are available.

    • Rollback in this scenario can also remount legacy PVC paths and risk serving stale data instead of the migrated data.

    Supported method to return to an older version:

    1. Use a downgrade by upgrade, not a Helm rollback.

    2. Upgrade to the target older chart version with explicit persistence pinning so Control continues to use the migrated nfsv3 PVC.
    3. During the downgrade, install the Helm chart with the following configuration:
      --set control.persistence.create=false
      --set-string control.persistence.claimName=hcl-devopsplan-control-shared-storage-nfsv3
      --set control.persistence.nfsV3.enabled=false