Deploy Conjur Kubernetes Follower

The Conjur Kubernetes Follower is designed for deployment inside your OpenShift/Kubernetes cluster. This topic describes how to deploy the Conjur Kubernetes Follower inside your cluster.

A Follower is a read only replica of the Leader. Followers are horizontally-scaling components that are typically configured behind a load balancer to handle all types of read requests, including authentication, permission checks, and secret fetches.

The Conjur Kubernetes Follower is specifically designed for deployment inside an OpenShift/Kubernetes cluster. It is unique in that it is a collection of microservices that run as separate containers as unprivileged (non-root) users within a Pod and, together, provide a scalable way to access the secrets stored in Conjur. For more information about the Conjur Kubernetes Follower and its architecture, see Conjur Kubernetes Follower.

  • Unless specifically noted otherwise, all references to Kubernetes apply to Self-hosted Kubernetes as well as Red Hat OpenShift and other supported Kubernetes-based implementations.
  • All references to Kubernetes namespaces intentionally include the OpenShift concept of project.
  • Followers for OpenShift/ Kubernetes integrations do not support selective replication.

System requirements

  • The Conjur Kubernetes Follower supports OpenShift v4 and other supported Kubernetes-based environments

    The following environments are not supported:

    • OpenShift v3

    • Kubernetes clusters v1.23 and later (not including OpenShift) whose Pod Security Standard policy is defined as “Restricted” at the namespace or cluster level. This security configuration prevents the Kubernetes Follower from initializing. Support for the Kubernetes Follower with these versions of Kubernetes will be available in future Conjur Enterprise release.

    In these cases deploy the Conjur Follower. For details, see Conjur Follower inside OpenShift/Kubernetes cluster.

  • The following table describes the recommended CPU and memory resource request values for deploying the Conjur Kubernetes Follower:

    Container

    CPU

    Memory

    Conjur

    1 CPU

    4 Gi

    PostgreSQL

    1 CPU

    4 Gi

    NGINX

    0.5 CPU

    200 Mi

    syslog-ng

    0.2 CPU

    100 Mi

    Info

    0.2 CPU

    100 Mi

Prerequisites

  • Make sure a JWT-based or cert-based authenticator is set up and enabled in Conjur. For details, see Authenticate OpenShift/Kubernetes

  • Make sure you have the Conjur CLI (v7.0.1+) installed and that you are logged in. For details, see Set up the Conjur CLI.

  • Deployment method:

    Deployment method Supported Kubernetes vendor

    OLM

    OpenShift v4

    You can install a Follower Operator in the OLM, and use this Operator to deploy Conjur Kubernetes Followers. In this case:

    • The OLM must be included in OpenShift v4

    • Your cluster must have access to the Red Hat product catalog

    Manual, using manifests

    You deploy the Conjur Kubernetes Follower manually by:

    1. Applying a manifest that installs the Follower Operator

    2. Applying a manifest that deploys the Conjur Kubernetes Follower using the Follower Operator.

    Download the conjur-<kubernetes/openshift>-follower-<version>-<SHA>.tgz archive from your organization's CyberArk Safe. For more information, contact CyberArk Customer Support.

    Then extract the content which includes the .tar files that you will need to install the Operator and Follower.

    All Conjur artifacts are cryptographically signed archives. We strongly recommend verifying archive signatures before installing them in your environment. For more information, see Verify signed Conjur artifacts.

Setup flow

  1. Install the Follower Operator

    This is done only once per Conjur version. When a new version of Conjur is released, the corresponding Follower Operator must be installed.

  2. Deploy the Conjur Kubernetes Follower

Step 1: Install the Follower Operator

The Conjur Follower Operator adds a ConjurFollower custom resource definition to your Kubernetes cluster. This resource enables deployment of the Conjur Kubernetes Follower inside your OpenShift/Kubernetes cluster.

In addition, the Conjur Follower Operator manages the lifecycle of the ConjurFollower Deployment created in the Kubernetes API. When a ConjurFollower custom resource is created, updated, or deleted, the Operator reconciles these changes in the ConjurFollower Deployment in Kubernetes.

To install the Conjur Follower Operator:

  1. Load the Operator and Conjur Kubernetes Follower images to your organization's image registry

    Follow this section if you are working with a non-OpenShift image registry, for example a privately hosted registry in AWS, or on-premises/other registry.

    In the Prerequisites section above, you extracted images from an archive file. Use these files in this section. The example below demonstrates a non-OpenShift deployment. If you are working with OpenShift, change kubernetes to openshift.

    1. Load the Operator image from operator/images to Docker, tag the image, and push it to your image registry:

      1. Load the image to Docker

        Run the following command, replacing <version>:

        $ docker load -q --input operator/images/conjur-kubernetes-follower-operator-<version>-<SHA>.tar
      2. Tag the image

        Run the following command, replacing <version> (two places), and replacing <image registry> with your organization's image registry:

        $ docker tag cyberark/conjur-kubernetes-follower-operator:<version> <image registry>/conjur-kubernetes-follower-operator:<version>
      3. Push the image to your image registry

        Run the following command, replacing <version>, and replacing <image registry> with your organization's image registry:

        $ docker push <image registry>/conjur-kubernetes-follower-operator:<version>
    2. Load each of the Conjur Kubernetes Follower images from follower/images to Docker, tag them, and push them to your image registry.

      For example, for the Configurator image:

      1. Load the image to Docker:

        $ docker load -q --input follower/images/conjur-kubernetes-follower-configurator-<version>-<SHA>.tar
      2. Tag the image:

        $ docker tag cyberark/conjur-kubernetes-follower-configurator:<version> <image registry>/conjur-kubernetes-follower-configurator:<version>
      3. Push the image:

        $ docker push <image registry>/conjur-kubernetes-follower-configurator:<version>

      Repeat for each image.

    3. Open operator/manifests/operator.yaml and edit the image path for the Kubernetes Deployment resource, conjur-follower-operator-controller-manager. Update the value to the path where you pushed the Operator image earlier.

      For example:

      image-registry.myorg-image-registry.example.net/cyberark/conjur-kubernetes-follower-operator:<version>

      Save your changes.

    Follow this section if you are working with the OpenShift internal registry. Before you can use the Follower Operator and Conjur Kubernetes Follower, you need to ensure that the corresponding images can be pulled by these resources within their respective projects.

    1. Prepare projects for the Operator and the Conjur Kubernetes Follower:

      1. For the Follower Operator, prepare the conjur-follower-operator-system project:

        $ kubectl new-project conjur-follower-operator-system
      2. For the Conjur Kubernetes Follower, prepare the cyberark-conjur project. If you already have a project with this name, you can skip this step.

      3. $ kubectl new-project cyberark-conjur
    2. Load the Operator image in operator/images to Docker, tag the image, and push it to your image registry.

      Perform this step in the conjur-follower-operator-system project.

      Use the images in the set of extracted Conjur Kubernetes Follower files (see Prerequisites).

      1. Load the image to Docker.

        Run the following command, replacing <version>:

        $ docker load -q --input operator/images/conjur-openshift-follower-operator-<version>-<SHA>.tar
      2. Tag the image.

        Run the following command, replacing <version> (two places), and replacing <image registry TLD> with your organization's image registry:

        $ docker tag cyberark/conjur-openshift-follower-operator:<version> <image registry TLD>/conjur-follower-operator-system/conjur-openshift-follower-operator:<version>
      3. Push the image to the image registry.

        Run the following command, replacing <version>, and replacing <image registry TLD> with your organization's image registry:

        $ docker push <image registry TLD>/conjur-follower-operator-system/conjur-openshift-follower-operator:<version>
    3. Load and tag each of the Conjur Kubernetes Follower images and push them to your image registry

      Repeat the previous steps but this time in the cyberark-conjur project. Load and tag , all of the images under follower/images, and push them to the registry.

      For example, for the Configurator image:

      1. Load the image:

        $ docker load -q --input follower/images/conjur-openshift-follower-configurator-<version>-<SHA>.tar
      2. Tag the image:

        $ docker tag cyberark/conjur-openshift-follower-configurator:<version> <image registry TLD>/cyberark-conjur/conjur-openshift-follower-configurator:<version>
      3. Push the image:

        $ docker push <image registry TLD>/cyberark-conjur/conjur-openshift-follower-configurator:<version>
    4. Open operators/manifests/operator.yaml and edit the image path for the Kubernetes Deployment resource, conjur-follower-operator-controller-manager. Update the value to the path where you pushed the Operator image earlier.

      For example:

      image-registry.openshift-image-registry.svc:5000/conjur-follower-operator-system/conjur-openshift-follower-operator:<version>

      Save your changes.

  2. Apply the Operator manifests (for OpenShift, replace kubectl with oc):

    $ cd operator && kubectl apply -f manifests
  1. Go to the Conjur Follower Operator in Red Hat.

  2. Install the Operator as described in Red Hat's OperatorHub online help, noting the following when making your selections:

    • Installation mode: The Conjur Follower Operator watches all namespaces in the OpenShift cluster. Select your preferred installation mode.

    • Update approval: We strongly recommend using the Manual option. This gives you more control over the Conjur Kubernetes Follower version running in your OpenShift environment.

Step 2: Deploy the Conjur Kubernetes Follower

This section describes how to deploy the Conjur Kubernetes Follower inside the Kubernetes cluster.

Operator FAQs