Preparing other Kubernetes platforms

Create your Event Gateway namespace, add the IBM Helm repository, and install the Event Endpoint Management operator.

Before you begin

Review and complete the planning and preparation that is described in the following topics:

About this task

To prepare a Kubernetes platform for an Event Gateway instance, you must create namespaces, install the Event Endpoint Management Custom Resource Definitions (CRDs), add the IBM Helm repository, install the Event Endpoint Management operator, and create an image pull secret.
Note: You can install only one version of the Event Endpoint Management operator on a cluster.

Procedure

  1. Create a namespace for your Event Endpoint Management operator, CRDs, and gateway instance.
    kubectl create ns <gateway namespace>
    Important: Do not use any of the initial or system namespaces, for example: default, kube-node-lease, kube-public, and kube-system.
  2. Add the IBM Helm repository.

    The Helm repository provides access to the Event Endpoint Management Helm chart packages that install the Event Endpoint Management operator on your cluster.

    To add the IBM Helm repository to your local list, run the following command:
    helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
  3. Install the Custom Resource Definitions (CRDs):
    helm install <release-name> ibm-helm/ibm-eem-operator-crd -n <crd namespace>
    • <release-name> is a name that you provide to identify your Event Endpoint Management CRD Helm install.
    • <crd namespace> is the namespace that you created for your Event Endpoint Management CRDs in step 1.
    For example:
    helm install eem-crds ibm-helm/ibm-eem-operator-crd -n eem-crds-ns
  4. Install the Event Endpoint Management operator:
    helm install \
       <release-name> ibm-helm/ibm-eem-operator \
       -n <operator namespace> \
       --set webhook.create=<true or false> \
       --set kubernetesServiceDnsDomain=<k8s service dns domain>  \
       --set watchAnyNamespace=<true or false>
    • <release-name> is a name that you provide to identify your Event Endpoint Management operator.
    • <operator namespace> is the namespace that you created for the Event Endpoint Management operator in step 1.
    • webhook.create=<true or false> determines whether the CR validating webhook is deployed. The default is true.
    • kubernetesServiceDnsDomain=<k8s service dns domain> specifies the domain that is used when the operator generates certificates. The value entered is used as the suffix on hosts in the dnsNames section of the certificate. The default is cluster.local.
    • watchAnyNamespace=<true or false> determines whether the operator manages instances of the Event Gateway in any namespace or only a single namespace. The default is false. Set to true for the operator to manage instances in any namespace.
    Examples:
    • To install the operator to manage all instances of the Event Gateway in the cluster, run:
      helm install \
         eventendpointmanagement ibm-helm/ibm-eem-operator\
         -n "eem-op" \
         --set watchAnyNamespace=true \
         --set webhook.create=false
    • To install the operator to manage the Event Gateway instances in only the my-ns namespace, and to use the defaults for all other options, run the command as follows:
      helm install eventendpointmanagement ibm-helm/ibm-eem-operator -n "my-ns"
    Check the operator status to confirm when the operator install is complete:
    kubectl get deploy ibm-eem-operator -n <operator namespace>
  5. Create an image pull secret.

    Create an image pull secret called ibm-entitlement-key in the namespace where you want to create an instance of the Event Gateway. The secret enables container images to be pulled from the registry.

    1. Obtain an entitlement key from the IBM Container software library.
    2. Click Entitlement keys in the navigation on the left, and click Add new key, or if you have an existing active key available, click Copy to copy the entitlement key to the clipboard.
    3. Create the secret in your Event Gateway namespace as follows:
      kubectl create secret docker-registry ibm-entitlement-key --docker-username=cp --docker-password="<your-entitlement-key>" --docker-server="cp.icr.io" -n "<gateway namespace>"

What to do next