-
Notifications
You must be signed in to change notification settings - Fork 142
Description
Is your feature request related to a problem? Please describe.
Related User Stories
- As a CyberArk developer of the simplified authentication client configuration (documented in Issue Design: there is a design document for Simplified Kubernetes Client Configuration #2045), I need a test setup for testing the proposed workflow using the new Helm templates, so that the Helm chart designs and the workflow can be verified.
- As a Conjur community member, I need to have a set up to use for a Quick Start guide that walks people through the process of deploying Conjur-enabled applications on Kubernetes using the workflow proposed in Issue Design: there is a design document for Simplified Kubernetes Client Configuration #2045.
- As a CyberArk developer of Secrets Provider write-to-file, I need a test setup that will provide quick iterations for testing code changes.
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+sedto 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!!!!
- Copy / Port scripts that do Conjur policy rendering and loading in conjurdemos/kubernetes-conjur-demo
- OPTIONAL: Split Conjur authenticator-specific policy from application specific policy (generation and loading)
- Create new scripts that call
helm install ...to instantiate the new Helm charts (cluster prep and namespace prep) - 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.
- 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.