Deploying updated Docker images with Kubernetes

Updates for HCL Commerce production environments are delivered as Docker images. To update your production environment, download the new images, and rebuild them as custom images to include your custom code. You then deploy the custom containers.

Before you begin

  • Ensure that your private Docker registry is updated with the latest Docker images.
  • Run the updatedb utility to update your database.
  • HCL Commerce Version 9.1.14.0 or laterBeginning in HCL Commerce 9.1.14.0, application container images are built to be run as a non-root user by default. This change has the potential to break your custom deployment. Therefore, you must review this change and its potential impacts. For more information, see HCL Commerce container users and privileges.
  • HCL Commerce Version 9.1.18.0 or laterExisting Solr 7.3 Search indexes are not compatible with the Solr 9.7 Query runtime container. If you are using Solr and planning to migrate to version 9.1.18.0, make sure to factor the reindexing time into your production cutover planning.
    Note: The 9.1.18 Commerce Solr-based Search upgrade is a significant update. By default, the 9.1.18 Commerce Solr-based Search solution is configured to work with the existing Solr 7.3 runtime provided in version 9.1.17. Upgrading to the 9.1.18 Solr-based Search Query container runtime is optional but recommended to take full advantage of the latest improvements. The 9.1.18 release will work with a 9.1.17 Solr-based Search Query container runtime. If you require this hybrid configuration and are using an Oracle database, open a case with HCL Customer Support to request patch HC-60507 to enable this configuration setup.

Procedure

  1. Download the latest version of the hcl-commerce-vaultconsul-helmchart and hcl-commerce-helmchart from the My HCLSoftware portal.
  2. Update your deployment configuration values.
    1. Review the provided versions of the Vault values.yaml, and HCL Commerce values.yaml configuration files for changes or additions.
    2. Update your custom configuration files based on any recommended changes or additions, in order to conform with the updated deployments.
  3. Update your development Vault deployment.
    Review any new Environment data in Vault changes for the latest version, update your custom vault values.yaml accordingly.
    HCL Commerce Version 9.1.18.0 or laterNote: If you ware using 9.1.18.0+ Commerce solr search, you will need to set ${VAULT_URL}/${TENANT}/${ENVIRONMENT}/softwareStack to open because the encryption algorithm for user activity cookies has been modified from SHA2DRBG (IBM proprietary) to SHA1PRNG (JCE provider) due to OpenJDK 17's (9.1.18.0+ solr search uses OpenJDK 17) lack of support for SHA2DRBG. You can find more detail in Upgrading Solr version 7.3.0 to 9.7.0. If you are not using 9.1.18.0+ solr search, you do not need to set softwareStack.
    Run the following command to update your Vault deployment with an updated Helm Chart, or configuration values:
    helm upgrade vault-consul ./hcl-commerce-vaultconsul -f my-values.yaml -n vault

    For more information, see Deploying a development Vault for HCL Commerce on Kubernetes.

  4. If you are using Elastic-based search, update your HCL Commerce deployment.
    1. Run the following command to update your HCL Commerce deployment with an updated Helm Chart, or configuration values:
      helm upgrade release-name hcl-commerce-helmchart -f my-values.yaml --set common.environmentType=environmentType -n commerce

      For more information, see Deploying HCL Commerce on a Kubernetes cluster.

    2. Verify the deployment.
      Ensure that all pods are using the updated Docker images and that they are displaying a healthy status.
    3. Build your search index on the updated environment.
    4. Propagate the search index to the Live environment:
  5. If you are using Solr-based search, update your HCL Commerce deployment.
    1. Upgrade auth environment.
      Run the following command to update your HCL Commerce auth deployment with an updated Helm Chart or configuration values. Ensure that all pods are using the updated Docker images and displaying a healthy status:
      helm upgrade release-name hcl-commerce-helmchart -f my-values.yaml --set common.environmentType=auth -n commerce

      For more information, see Deploying HCL Commerce on a Kubernetes cluster.

    2. Build your search index on the updated environment.
    3. Upgrade live environment
      Note:

      For a live environment upgrade, please carefully review HCL Commerce production update overview and plan the upgrade during a less busy time to minimize live site downtime.

      The 9.1.18 Solr-based Search upgrade is a significant update. Solr 9.7 (for version 9.1.18 and above) Query container runtime is incompatible with existing Solr 7.3 (for version 9.1.17) search indexes. This incompatibility requires a complete index rebuild. During the rebuild, product availability in the store may be temporarily disrupted. To ensure a seamless production cut-over, detailed planning is essential, including the scheduling of downtime to facilitate the index migration process.

      Run the following command to update your HCL Commerce live deployment with an updated Helm Chart or configuration values. Ensure that all pods are using the updated Docker images and displaying a healthy status:

      helm upgrade release-name hcl-commerce-helmchart -f my-values.yaml --set common.environmentType=live -n commerce
    4. Propagate the search index to the Live environment:
      Run Propagating the search index to propagate all indices from the master to the search engine repeater, refer Propagating the HCL Commerce Search index with the repeater. The repeater acts as a master server to replicate the changes to the subordinate servers. For more information, see Propagate the Solr-based search index with the repeater.
    5. Invalidate all CDN caches. For more information, see Invalidating a Search cache.

Results

Your Kubernetes based deployment has been updated to use the latest version of the provided Helm Charts, values, and Docker images.