Chapter 3. Manually creating IAM for Azure
In environments where the cloud identity and access management (IAM) APIs are not reachable, or the administrator prefers not to store an administrator-level credential secret in the cluster kube-system namespace, you can put the Cloud Credential Operator (CCO) into manual mode before you install the cluster.
3.1. Alternatives to storing administrator-level secrets in the kube-system project Copy linkLink copied to clipboard!
The Cloud Credential Operator (CCO) manages cloud provider credentials as Kubernetes custom resource definitions (CRDs). You can configure the CCO to suit the security requirements of your organization by setting different values for the credentialsMode parameter in the install-config.yaml file.
If you prefer not to store an administrator-level credential secret in the cluster kube-system project, you can set the credentialsMode parameter for the CCO to Manual when installing OpenShift Container Platform and manage your cloud credentials manually.
Using manual mode allows each cluster component to have only the permissions it requires, without storing an administrator-level credential in the cluster. You can also use this mode if your environment does not have connectivity to the cloud provider public IAM endpoint. However, you must manually reconcile permissions with new release images for every upgrade. You must also manually supply credentials for every component that requests them.
3.2. Manually create IAM Copy linkLink copied to clipboard!
The Cloud Credential Operator (CCO) can be put into manual mode prior to installation in environments where the cloud identity and access management (IAM) APIs are not reachable, or the administrator prefers not to store an administrator-level credential secret in the cluster kube-system namespace.
Procedure
Change to the directory that contains the installation program and create the
install-config.yamlfile by running the following command:openshift-install create install-config --dir <installation_directory>
$ openshift-install create install-config --dir <installation_directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow where
<installation_directory>is the directory in which the installation program creates files.Edit the
install-config.yamlconfiguration file so that it contains thecredentialsModeparameter set toManual.Example
install-config.yamlconfiguration fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- This line is added to set the
credentialsModeparameter toManual.
Generate the manifests by running the following command from the directory that contains the installation program:
openshift-install create manifests --dir <installation_directory>
$ openshift-install create manifests --dir <installation_directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow where
<installation_directory>is the directory in which the installation program creates files.From the directory that contains the installation program, obtain details of the OpenShift Container Platform release image that your
openshift-installbinary is built to use by running the following command:openshift-install version
$ openshift-install versionCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
release image quay.io/openshift-release-dev/ocp-release:4.y.z-x86_64
release image quay.io/openshift-release-dev/ocp-release:4.y.z-x86_64Copy to Clipboard Copied! Toggle word wrap Toggle overflow Locate all
CredentialsRequestobjects in this release image that target the cloud you are deploying on by running the following command:oc adm release extract quay.io/openshift-release-dev/ocp-release:4.y.z-x86_64 \ --credentials-requests \ --cloud=azure
$ oc adm release extract quay.io/openshift-release-dev/ocp-release:4.y.z-x86_64 \ --credentials-requests \ --cloud=azureCopy to Clipboard Copied! Toggle word wrap Toggle overflow This command creates a YAML file for each
CredentialsRequestobject.Sample
CredentialsRequestobjectCopy to Clipboard Copied! Toggle word wrap Toggle overflow Create YAML files for secrets in the
openshift-installmanifests directory that you generated previously. The secrets must be stored using the namespace and secret name defined in thespec.secretReffor eachCredentialsRequestobject.Sample
CredentialsRequestobject with secretsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Sample
SecretobjectCopy to Clipboard Copied! Toggle word wrap Toggle overflow ImportantThe release image includes
CredentialsRequestobjects for Technology Preview features that are enabled by theTechPreviewNoUpgradefeature set. You can identify these objects by their use of therelease.openshift.io/feature-set: TechPreviewNoUpgradeannotation.- If you are not using any of these features, do not create secrets for these objects. Creating secrets for Technology Preview features that you are not using can cause the installation to fail.
- If you are using any of these features, you must create secrets for the corresponding objects.
To find
CredentialsRequestobjects with theTechPreviewNoUpgradeannotation, run the following command:grep "release.openshift.io/feature-set" *
$ grep "release.openshift.io/feature-set" *Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
0000_30_capi-operator_00_credentials-request.yaml: release.openshift.io/feature-set: TechPreviewNoUpgrade
0000_30_capi-operator_00_credentials-request.yaml: release.openshift.io/feature-set: TechPreviewNoUpgradeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
From the directory that contains the installation program, proceed with your cluster creation:
openshift-install create cluster --dir <installation_directory>
$ openshift-install create cluster --dir <installation_directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ImportantBefore upgrading a cluster that uses manually maintained credentials, you must ensure that the CCO is in an upgradeable state.
3.3. Next steps Copy linkLink copied to clipboard!
Install an OpenShift Container Platform cluster:
- Installing a cluster quickly on Azure with default options on installer-provisioned infrastructure
- Install a cluster with cloud customizations on installer-provisioned infrastructure
- Install a cluster with network customizations on installer-provisioned infrastructure