Diese Seite ist nur auf Englisch verfügbar.

Deployment with Helm

This section explains the new installation and upgrade process of the nexeed-infra Helm chart.

Prerequisites

The following prerequisites must be in place:

  • Kubernetes Cluster installed and configured (K3s, kind, aks, eks etc.)

  • Installation of the kubernetes manifests from sot chart, that the following has been installed:

    • namespaces

    • CRDs

    • cluster role or the availability of kubernetes cluster admin for SOT application deployment

  • Access to Kubernetes API with a non-kubernetes admin user for deployment of namespaced-scoped objects

  • Helm binary installed (version >= 3.15)

  • Access to BCIDockerRegistry or a mirror of it, which provides modules' images for deployment

  • The nexeed-infra HelmUmbrellaChart artifact for the specific version (which can also be retrieved from BCIDockerRegistry)

Custom values file

It is required to have the custom-values-infra.yaml file to deploy the nexeed-infra Helm chart.

The minimal custom-values-infra.yaml file is layed out below:

# custom-values-infra.yaml
global:
  targetDeployment: <platform_name>
  imageCredentials:
    docker-registry-secret:
      registry: <registry_hostname>
      email: <registry_login_email>
      username: <username>
      password: <password>
  embeddedRabbitMQAdminPassword: <rabbitmq_admin_password>
  nexeedHost: <hostname>
  nexeedCACerts: |
    <CACertChain>
  modules:
    rabbitmq:
      enabled: true
      contextPath: <optional>
      loadBalancer:
        enabled: <true/false>

        # if enabled: true, the following parameters are required
        ## For Azure platform
        ip: <load_balancer_ip>
        azure:
          public_ip_resource_group: <resource_group_name>
        sourceRanges:
          - <whitelisted_ip1_ranges_in_cidr>
          - <whitelisted_ip2_ranges_in_cidr>

The explanation of the minimal parameters under global:

  1. targetDeployment: the target platform deployment, i.e. azure, k3s, etc

  2. imageCredential block: the credential for the Container image registry

  3. embeddedRabbitMQAdminPassword: The admin password for RabbitMQ admin portal, should be the same as the one in the sot chart

  4. nexeedHost: the primary hostname for the targeting sot deployment, should be the same as the one in the sot chart

  5. nexeedCACerts: should be the same as the sot chart

  6. modules: the block of the middleware components this chart manages

Module: RabbitMQ

This section explains the RabbitMQ chart available parameters.

global.modules.rabbitmq section:

  1. enabled: true or false - Enables or disables the RabbitMQ cluster

  2. contextPath: default to rabbitmq - The URL context path of the RabbitMQ management portal

  3. loadBalancer: The loadBalancer section states if a cloud-provided loadbalancer is needed.

    • loadBalancer.enabled: true or false (default) - If false then only Kubernetes service resource will be used.

  4. The other platform specific parameters under loadBalancer are not needed if set to false.

  1. When global.targetDeployment is set to azure, then it is targeting Azure platform.

  2. When Kubernetes service is used, the RabbitMQ cluster is only visible within the Kubernetes cluster.

The following parameters under loadBalancer are valid for Azure platform:

  1. ip: The IP address string of the Azure loadbalancer for the RabbitMQ cluster

  2. sourceRange: List of the whitelisted inbound IP sources in CIDR range format for accessing this RabbitMQ cluster

  3. azure: The Azure specific parameters

    • public_ip_resource_group: The resource group name of the public IP address for the RabbitMQ cluster

rabbitmq.local section:

  1. extraPlugins: it is a list of extra plugins to be enabled in Rabbitmq instances

If rabbitmq_prometheus is added to the extraPlugins list, the chart also exposes prometheus metrics via ingress controller with a configuration similar with the one for the management plugin (under same subdomain or contextpath). The prometheus metrics will be available on the same context path as the management plugin, i.e. /rabbitmq/node0/metrics, /rabbitmq/node1/metrics and so on, one entry for each rabbitmq instance.

Deploy to Kubernetes

You may deploy the nexeed-infra Helm chart by the following steps:

  1. Login to the registry that hosts the nexeed-infra (one time setup): helm registry login <registry_host> --username <username> --password <password>

  2. Download the nexeed-infra Helm chart: helm pull oci://<registry_host>/nexeed-infra/helmchart/nexeed-infra --version <version>

  3. Extract the downloaded tgz file: tar xvzf nexeed-infra-<version>.tgz

  4. Change directory to the nexeed-infra folder cd nexeed-infra

  5. Connect to your Kubernetes cluster by updating your <home>/.kube/config file

  6. Assuming the custom-values-infra.yaml is written, then perform the command for installation or upgrade: helm upgrade -i -n infra --create-namespace nexeed-infra -f <path_to_custom-values-infra.yaml> .

  7. Wait until the enabled services are up and running

  8. Continue with the sot chart deployment

The RabbitMQ StatefulSet will be deployed, the size of the cluster will automatically adjust based on available nodes.

Add the cluster info to SOT chart

Now you should add the RabbitMQ information to the main sot chart in their custom-values.yaml file.

See RMQCustomValueRemote for reference.

Edit this pageDiese Seite bearbeiten

Feedback on this pageFeedback zu dieser Seite