Prerequisites for deploying Commerce+ on a Kubernetes cluster

There are multiple software, environment, and deployment configuration prerequisites to deploy Commerce+ on Kubernetes. Commerce+ provides a large degree of flexibility, and each available option should be considered for viability in your resulting production deployment.

Vault is the recommended configuration mode for Commerce+, as Vault is designed to store configuration data securely. In addition to storing configuration data, Vault is also used by Commerce+ as a Certificate Authority, to issue certificates to each application in order to communicate with one another securely.

For non-production environments, you can consider the use of the hcl-commerce-vault-helmchart Helm Chart to deploy and initialize Vault for Commerce+. However, this chart runs Vault in development mode, not high availability (HA) mode. It also does not handle the Vault token securely. Therefore, it should not be used for production environments. See Vault Concepts in the Vault documentation for more considerations for running Vault in a production setting.

Procedure

  1. Obtain the Commerce+ Helm Charts.
    1. Review the list of latest available packages in Downloading HCL Commerce+ software to ensure that you are obtaining the most up-to-date version of Commerce+ software.
    2. Download and extract the latest version of the Commerce+ Helm chart Git bundle, for example (HCL_Commerce+_26.07.22.0_Helm_Charts.bundle).
    3. Clone the repository.
      git clone bundleName projectName
      
      Where:
      bundleName
      The filename of the bundle you are cloning.
      projectName
      The name of the git project that you are creating.
      For example:
      git clone HCL_Commerce+_26.07.22.0_Helm_Charts.bundle HCL_Commerce_Helm_charts
  2. Vault is a mandatory component that is used by default as a Certificate Agent to automatically issue certificates.
    It is also used as a configuration center for the deployment to store environment-related data. For more information and instructions on deploying Vault for use with Commerce+, see Deploying a development Vault for Commerce+.
  3. You require a Kubernetes cluster to deploy Commerce+.
    It is recommended that you use Kubernetes 1.35 and above.

    It can be on a private or public cloud, or even on a Kubernetes cluster that is set up with kubeadm. For more information about using kubeadm, see Creating a single master cluster with kubeadm.

    When you use the provided Helm Chart to deploy Commerce+, check the Required resources for a minimal Commerce+ environment resources for your deployment solution.

    Ensure that your cluster has sufficient resources for your deployment. The requirements outlined below are only an estimate. They are based on a full environment (auth, live and shared groups) deployment with a single instance (replica set) for each application. These numbers also include the 10 vCPUs and 12GB of memory overhead requirement that are utilized in a rolling upgrade scenario. During an upgrade multiple instances of an application can be active at the same time.

  4. You must install Istio to access Commerce+ after deployment on Kubernetes.

    The Commerce+ Helm Chart primarily supports the Istio Gateway. For information about installing Istio in your Kubernetes cluster, see the Installation Guide in the Istio documentation.

  5. You require Helm to manage the application on Kubernetes.
    It is recommended to use Helm version 3.21.x or greater. To download and set up Helm, visit https://github.com/helm/helm/releases.
  6. A Vault token must be stored as a secret object.
    This value is also placed in your Helm chart values to allow the Commerce+ application to consume the Vault token value. If you use hcl-commerce-vault-helmchart to deploy vault for development or non-production usage, a secret named plus-vault-token-secret  should have been created already in the commerce namespace in step 2.d of Deploying a development Vault for Commerce+. Otherwise, complete the following steps to create a new secret and import it into your environment.
    1. Obtain the base64 encoded string of your vault token by passing it through the base64 system utility. In a command prompt, run echo -n vault_token | base64.
    2. Create a file named vault-secret.yaml with the following content. Replace <VAULT_TOKEN> to the value obtained, and replace <NAME_SPACE> to commerce. Save the file.
      apiVersion: v1 
      kind: Secret 
      metadata: 
        name: plus-vault-token-secret  
        namespace: <NAME_SPACE>
      type: Opaque 
      data: 
        VAULT_TOKEN: <VAULT_TOKEN>
    3. Run kubectl apply -f vault-secret.yaml to create the secret within the commerce namespace.
  7. All Docker images that are required for the Commerce+ deployment must be loaded to a Docker Registry where your Kubernetes cluster can access them.

    You can obtain the Commerce+ from the My HCLSoftware portal.

    The tags that are used in your Docker Registry must be the same as those used in your Helm Charts.

  8. One or more databases are required.
    For quick testing or exploratory purposes, you can use the Commerce+ sample PostgresQL database Docker image, which has the default schema and sample bootstrap data loaded, to explore Commerce+ features and functionality. However, it is strongly recommended to set up your database on its own dedicated server so that you can persist data and tune performance. Database sizing requirements will vary by vendor and configuration. See Setup prerequisites for an Commerce+ Kubernetes environment for more information on the requirements for an Commerce+ production environment.
  9. The remaining steps in this deployment assume that Commerce+ is deployed on the commerce namespace. Perform the following steps as a cluster administrator.
    1. If you have not already created the commerce namespace, such as in the prerequisites of Deploying a development Vault for Commerce+, create it now by running the following command: kubectl create namespace commerce.
  10. Optional: Enable the Assets tool.

    If you intend for the Assets Tool to be used within your deployment, you must implement accessible persistent storage.

    To implement persistent storage, see Setting up persistent storage volumes for a Kubernetes deployment.

  11. Optional: Disable Tooling analytics.
    By default, HCL Commerce tooling reports business user analytics to HCL. This information assists HCL in the development of new features and the enhancement of existing business user tools.

Results

Your environment is now prepared. You can now deploy Commerce+. Continue with Deploying HCL Commerce+ with Helm on Kubernetes.