Skip to content

A test setup exists for testing simplified authn client config #2062

@diverdane

Description

@diverdane

Is your feature request related to a problem? Please describe.

Related User Stories

Background

Issue #2045 proposes a new workflow that uses a simplified way of configuring Conjur authenticator sidecar/init containers (initially includes just the Secrets Provider, but will ultimately include authn-k8s and Secretless Broker containers). We need a development test environment to test the new Helm charts (Kubernetes Cluster Prep Helm chart and Application Namespace prep Helm chart) as they are being developed, along with testing the proposed workflow with a Secrets Provider init container.

Once such a setup has been created, the test setup can potentially be used by community members in support of a Conjur Kubernetes authenticator Quick-Start guide that walks people through the newly proposed workflow for deploying Conjur-enabled applications on Kubernetes.

Problems with extending existing Secrets Provider test setup for testing new workflow

The existing Secrets Provider testing focuses primarily on testing Secrets Provider functionality. As such, it would be involved. and also disruptive to engineers working on that project to add test flows that make use of the Conjur Connection ConfigMaps that are proposed in Issue #2045.

Problems with extending existing kubernetes-conjur-deploy and kubernetes-conjur-demo scripts for testing the new workflow

  • The cyberark/kubernetes-conjur-deploy scripts are used extensively by developers and by folks in the field. Adding new functionality based on the new Helm charts would risk disruptions if changes are introduced that inadvertently break existing support.
  • The conjurdemos/kubernetes-conjur-demo scripts are already overwhelming in terms of all the combinations and permutations of platforms supported (kubernetes vs OpenShift), Conjur OSS vs. Conjur enterprise, and Conjur authenticator sidecars/init containers (authn-k8s, secretless broker, etc.) Adding yet another combination to the mix would add to the "Swiss Army Knife from Hell" aspect of this project.
  • Iterations will be much quicker if ONLY ONE Conjur authenticator type is being tested rather then including all types of authenticator sidecar/init containers.

Describe the solution you would like

Proposed Support

Assumptions

The test setup should assume that the following have already been deployed:

  • Kubernetes cluster (could be KinD or OpenShift)
  • Conjur Cluster (could be Conjur OSS or Conjur Enterprise/DAP)

Workflow to be Supported

The test setup should support the following workflow:

  • Kubernetes cluster prep using new Cluster Prep helm chart
  • Deployment of a Conjur CLI pod if one is not present
  • Loading of authenticator Conjur policy using Conjur CLI pod
  • Application namespace prep using new Application Namespace prep Helm chart
  • Loading of application Conjur policy using Conjur CLI pod
  • Deployment of a Pod that contains the Secrets Provider Init container and an application (e.g. debian or Pet Store)

Leveraging the Existing Kubernetes-Conjur-Demo scripts as a starting point

Much of what is required for this issue is available in the form of Bash scripts and manifest templates in the conjurdemos/kubernetes-conjur-demo. This project can serve as a starting point for a new project. The changes that would need to be done to the existing kubernetes-conjur-demo project:

  • Test with a SINGLE authenticator + application combination (initially Secrets Provider only)
  • Use the new Helm charts (cluster prep and namespace prep) instead of corresponding bash scripts
  • Modify pod manifests to use the simplified Conjur configuration (i.e. Conjur Connection ConfigMaps) rather than hard-coded environment variables
  • OPTIONAL: Create a new Helm chart to deploy the application, rather than using bash+sed to modify manifest templates and bash scripts to kubectl create objects. This would provide a much better presentation for a Quick-Start guide.

Work Items: SPLIT OUT INTO SEPARATE ISSUES AS REQUIRED!!!!

  1. Copy / Port scripts that do Conjur policy rendering and loading in conjurdemos/kubernetes-conjur-demo
  2. OPTIONAL: Split Conjur authenticator-specific policy from application specific policy (generation and loading)
  3. Create new scripts that call helm install ... to instantiate the new Helm charts (cluster prep and namespace prep)
  4. EITHER: Create new sample application deployment Helm chart OR port scripts in conjurdemos/kubernetes-conjur-demo repo that do kube manifest rendering and kubectl deploy of applications + authenticator.
  5. Modify application manifests to use new Conjur connection ConfigMaps.

Describe alternatives you have considered

Alternative: Modify conjurdemos/kubernetes-conjur-demo scripts. Disadvantages are listed above.

Additional context

Add any other context information about the feature request here.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions