Installing IBM Cloud Pak foundational services in multiple namespaces
Important: This content is a technical preview, and should not be relied on in a production environment.
You can install multiple foundational services instances in your cluster.
Multiple foundational services instances capability is supported as a technology preview. See the following sections before you use this capability:
The IBM Cloud Pak foundational services
operator, including the Operand Deployment Lifecycle Manager
and all of the foundational services, by default, are installed only in the ibm-common-services
namespace.
If you want to install multiple foundational services instances in other namespaces, create the common-service-maps
configmap in the kube-public
namespace, and update it with the IBM Cloud® Paks and foundational services
namespace information.
Requirements and limitations
- The same version of foundational services are installed in all instances.
- Multiple foundational services instances capability is available only with a fresh installation of foundational services version 3.18, and not with an upgrade to version 3.18.
- You can install multiple foundational services instances only if you are installing them for the first time in your cluster. You cannot migrate foundational services to another namespace by updating the configmap if they are already installed in your cluster.
Planning your installation
-
Plan the number of foundational services instances that you need in your cluster. You might need multiple instances if your IBM Cloud Pak requires or recommends it. See the following scenarios:
-
You plan to install multiple IBM Cloud Paks in your cluster. Some might need dedicated instances of foundational services. Follow the installation instructions of each IBM Cloud Pak to install the foundational services instances.
-
Your IBM Cloud Pak might need a separate instance for each environment. For example, to configure a different identity provider for each department.
-
-
Create or update the
common-service-maps
configmap before you start the multiple instances installation.
Preparing your cluster
You must prepare your cluster to meet the requirements for the number of foundational services instances that you are installing. For more details on the requirements of one instance of foundational services, see the following topics:
Creating the configmap
Important: You must create or update the common-service-maps
configmap before you start installing your IBM Cloud Paks and foundational services instances.
You can create the common-service-maps
configmap by using the OpenShift cluster console or the command-line interface (CLI). In the configmap, you can map the IBM Cloud Pak and its foundational
services instance in the namespaceMapping
section.
Following descriptions provide more details on the configmap parameters:
- The
controlNamespace
is a shared namespace for deploying cluster-scope resources.- This namespace must not be the same as any IBM Cloud Pak or foundational services instance namespace.
- You cannot change this namespace after you install foundational services.
- The
requested-from-namespace
is your IBM Cloud Pak namespace. You must map this namespace to only one foundational services instance.
Important: You must install your IBM Cloud Pak in the namespace that you specify in therequested-from-namespace
section. - The
map-to-common-service-namespace
is the namespace where foundational services are installed. - If you plan to install one foundational services instance for multiple IBM Cloud Paks, specify multiple IBM Cloud Pak namespaces in the
requested-from-namespace
section. Specify the foundational services namespace in themap-to-common-service-namespace
section. See the following example:- requested-from-namespace: - cp4d - cp4mcm map-to-common-service-namespace: common-service-1
- If you plan to install a dedicated foundational services instance for an IBM Cloud Pak, specify the IBM Cloud Pak namespace in the
requested-from-namespace
section, and the foundational services namespace in themap-to-common-service-namespace
section. See the following example:- requested-from-namespace: - cp4i map-to-common-service-namespace: cp4i-fs
Create the configmap by using the OpenShift cluster console
You must complete these tasks from your OpenShift cluster console.
- Log in to your OpenShift cluster console.
- Click the plus icon. You see the Import YAML dialog box.
- Paste the following configmap definition into the dialog box and replace the namespace value with your custom namespaces.
apiVersion: v1 kind: ConfigMap metadata: name: common-service-maps namespace: kube-public data: common-service-maps.yaml: | controlNamespace: cs-control namespaceMapping: - requested-from-namespace: - <IBM Cloud Pak-1-namespace> map-to-common-service-namespace: <foundational services-namespace-1> - requested-from-namespace: - <IBM Cloud Pak-2-namespace> map-to-common-service-namespace: <foundational services-namespace-2>
- Click Create. The
common-service-maps
configmap is created in thekube-public
namespace.
Create the configmap by using the command-line interface (CLI)
You must complete these tasks from your OpenShift cluster node.
- Log in to the cluster by using the
oc login
command. - Create a YAML file named
common-service-maps.yaml
with the following definition:apiVersion: operators.coreos.com/v1alpha1 kind: ConfigMap metadata: name: common-service-maps namespace: kube-public data: common-service-maps.yaml: | controlNamespace: cs-control namespaceMapping: - requested-from-namespace: - <IBM Cloud Pak-1-namespace> map-to-common-service-namespace: <foundational services-namespace-1> - requested-from-namespace: - <IBM Cloud Pak-2-namespace> map-to-common-service-namespace: <foundational services-namespace-2>
- Create the configmap.
oc apply -f common-service-maps.yaml
The common-service-maps
configmap is created in the kube-public
namespace.
Editing the configmap
You can change the namespace mapping after you install foundational services. However, the following conditions apply:
- After you start installing your IBM Cloud Pak and the foundational services instance, you cannot remove the
requested-from-namespace
or change themap-to-common-service-namespace
. However, you can add a namespace to therequested-from-namespace
list. - If you uninstall a foundational services instance, you can remove the IBM Cloud Pak namespaces mapping. You can map these IBM Cloud Pak namespaces to another foundational services instance.
What's next
Install foundational services. See IBM Cloud Pak foundational services version 3.18.
Important: In each foundational services instance namespace that you add in the common-service-maps
configmap, you must complete the following tasks:
- Install the
IBM Cloud Pak
operator in eachrequested-from-namespace
namespace. - Update the
CommonService
custom resource (CR) with the hardware profile and configurations of individual services.- If you have a cluster-scoped operator in the
controlNamespace
, it picks the largest hardware profile across all theCommonService
custom resources in the cluster, and sets it as the hardware profile for the cluster. For example, the License Service and Certificate Manager operators. - If you have a namespace-scoped operator, it sets the hardware profile based on the
CommonService
custom resource in the namespace.
- If you have a cluster-scoped operator in the
-
Create an
OperandRequest
with the services that you want to install in the foundational services instance.You can install the following services in multiple namespaces:
- Identity and Access Management (
ibm-iam-operator
) - Common Web UI (
ibm-commonui-operator
) - Certificate Manager (
ibm-cert-manager-operator
) - Events (
ibm-events-operator
) - Management Ingress (
ibm-management-ingress-operator
) - Ngnix Ingress (
ibm-ingress-nginx-operator
) - Cloudctl (
ibm-platform-api-operator
) - License Service (
ibm-licensing-operator
) - MongoDB (
ibm-mongodb-operator
) - Platform UI (
ibm-zen-operator
andzen-cpp-operator
)
Note: Even though you install multiple instances of the License Service or Certificate Manager service, only one instance each is installed in the cluster. Irrespective of where you create the
OperandRequest
, these two services are installed in the namespace that you specify as thecontrolNamespace
parameter value in thecommon-service-maps
configmap. The largest configured resources limits (CPU and memory) of these services across the cluster are applied to the instances that are in thecontrolNamespace
. - Identity and Access Management (