Staged CDK Installation

By default, the cdk install command installs the entire ForgeRock Identity Platform in the CDK’s namespace.

You can also install the platform in stages to help troubleshoot deployment issues.

To install the platform in stages:

  1. Verify that the namespace in which the CDK is deployed is set in your Kubernetes context.

  2. Install the base and ds components first. Other components have dependencies on these two components:

    1. Install the platform base component:

      $ cd /path/to/forgeops/bin
      $ ./cdk install base --fqdn dev.example.com
      Checking secret-agent operator and related CRDs: secret-agent CRD not found. Installing secret-agent.
      namespace/secret-agent-system created
      . . .
      
      Waiting for secret agent operator…​
      customresourcedefinition.apiextensions.k8s.io/secretagentconfigurations.secret-agent.secrets.forgerock.io condition met
      deployment.apps/secret-agent-controller-manager condition met
      pod/secret-agent-controller-manager-694f9dbf65-52cbt condition met
      
      Checking ds-operator and related CRDs: ds-operator CRD not found. Installing ds-operator.
      namespace/fr-system created
      customresourcedefinition.apiextensions.k8s.io/directoryservices.directory.forgerock.io created
      . . .
      
      Waiting for ds-operator…​
      customresourcedefinition.apiextensions.k8s.io/directoryservices.directory.forgerock.io condition met
      deployment.apps/ds-operator-ds-operator condition met
      pod/ds-operator-ds-operator-f974dd8fc-55mxw condition met
      
      Installing component(s): ['base']
      
      configmap/dev-utils created
      configmap/platform-config created
      Warning: networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
      ingress.networking.k8s.io/end-user-ui created
      ingress.networking.k8s.io/forgerock created
      ingress.networking.k8s.io/ig-web created
      ingress.networking.k8s.io/login-ui created
      ingress.networking.k8s.io/platform-ui created
      secretagentconfiguration.secret-agent.secrets.forgerock.io/forgerock-sac created
      
      Waiting for K8s secrets
      Waiting for secret: am-env-secrets …​done
      Waiting for secret: idm-env-secrets …​…​done
      Waiting for secret: rcs-agent-env-secrets …​done
      Waiting for secret: ds-passwords .done
      Waiting for secret: ds-env-secrets .done
      
      Relevant passwords:
      . . .
      
      Relevant URLs:
      https://dev.example.com/platform
      https://dev.example.com/admin
      https://dev.example.com/am
      https://dev.example.com/enduser
      
      Enjoy your deployment!
    2. After you’ve installed the base component, install the ds component:

      $ ./cdk install ds
      Checking secret-agent operator and related CRDs: secret-agent CRD found in cluster.
      Checking ds-operator and related CRDs: ds-operator CRD found in cluster.
      
      Installing component(s): ['ds']
      
      directoryservice.directory.forgerock.io/ds-idrepo created
      
      Enjoy your deployment!
  3. Install the other ForgeRock Identity Platform components. You can either install all the other components by using the cdk install apps command, or install them separately:

    1. Install AM:

      $ ./cdk install am
      Checking secret-agent operator and related CRDs: secret-agent CRD found in cluster.
      Checking ds-operator and related CRDs: ds-operator CRD found in cluster.
      
      Installing component(s): ['am']
      
      service/am created
      deployment.apps/am created
      
      Enjoy your deployment!
    2. Install Amster:

      $ ./cdk install amster
      Checking secret-agent operator and related CRDs: secret-agent CRD found in cluster.
      Checking ds-operator and related CRDs: ds-operator CRD found in cluster.
      
      Installing component(s): ['amster']
      
      job.batch/amster created
      
      Enjoy your deployment!
    3. Install IDM:

      $ ./cdk install idm
      Checking secret-agent operator and related CRDs: secret-agent CRD found in cluster.
      Checking ds-operator and related CRDs: ds-operator CRD found in cluster.
      
      Installing component(s): ['idm']
      
      configmap/idm created
      configmap/idm-logging-properties created
      service/idm created
      deployment.apps/idm created
      
      Enjoy your deployment!
    4. Install the RCS Agent:

      $ ./cdk install rcs-agent
      Checking secret-agent operator and related CRDs: secret-agent CRD found in cluster.
      Checking ds-operator and related CRDs: ds-operator CRD found in cluster.
      
      Installing component(s): ['rcs-agent']
      
      configmap/rcs-agent-config-properties created
      configmap/rcs-agent-logging-properties created
      service/rcs-agent created
      deployment.apps/rcs-agent created
      
      Enjoy your deployment!
  4. Install the user interface components. You can either install all the applications by using the cdk install ui command, or install them separately:

    1. Install the administration UI:

      $ ./cdk install admin-ui
      Checking secret-agent operator and related CRDs: secret-agent CRD found in cluster.
      Checking ds-operator and related CRDs: ds-operator CRD found in cluster.
      
      Installing component(s): ['admin-ui']
      
      service/admin-ui created
      deployment.apps/admin-ui created
      
      Enjoy your deployment!
    2. Install the login UI:

      $ ./cdk install login-ui
      Checking secret-agent operator and related CRDs: secret-agent CRD found in cluster.
      Checking ds-operator and related CRDs: ds-operator CRD found in cluster.
      
      Installing component(s): ['login-ui']
      
      service/login-ui created
      deployment.apps/login-ui created
      
      Enjoy your deployment!
    3. Install the end user UI:

      $ ./cdk install end-user-ui
      Checking secret-agent operator and related CRDs: secret-agent CRD found in cluster.
      Checking ds-operator and related CRDs: ds-operator CRD found in cluster.
      
      Installing component(s): ['end-user-ui']
      
      service/end-user-ui created
      deployment.apps/end-user-ui created
      
      Enjoy your deployment!
  5. In a separate terminal tab or window, run the kubectl get pods command to monitor status of the deployment. Wait until all the pods are ready.

    Your namespace should have the pods shown in this diagram.

Multiple Component Installation

You can specify multiple components with a single cdk install command. For example, to install the base, ds, am, and amster components:

$ ./cdk install base ds am amster