Kubernetes Onboarding using Argo CD
The Panoptica Kubernetes controller can be deployed using Argo CD to automate application deployment and lifecycle management. Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes applications that uses Git repositories as the source of truth for defining the desired application state.
Retrieve values
To deploy Panoptica's K8s controller with Argo CD, first create an integration in the Panoptica platform. Then retrieve the Helm values and chart details, which you'll plug into your Argo CD code. There are three ways you can do this:
- Use the Panoptica K8s CLI to create the integration and retrieve the Helm values and chart info (recommended):
- Create the integration with
panoptica-k8s integration create <integration name>
- Retrieve the Helm values with
panoptica-k8s integration helm-values <integration name>
- Retrieve the Helm chart details with
panoptica-k8s integration chart-info <integration name>
- Create the integration with
- Use our API to create the integration and retrieve the Helm values and chart info:
- Use the Panoptica console UI to create the integration and generate a full Helm command for deploying Panoptica's Kubernetes controller.
Configure Argo CD
Once you have the Helm values and chart info, you're ready to build the YAML files for your Argo CD deployment.
For values.yaml
, copy the Helm values you retrieved from Panoptica, that might look something like this:
global:
panopticaIntegration:
id: a1a1a1a1-b2b2-c3c3-d4d4-e5e5e5e5e5e5
kspm:
enabled: true
apiSecurity:
enabled: false
cdr:
enabled: false
mgmtHostname: "portshift.panoptica.app"
kubernetes-integration-deployment-controller:
api:
url: "us1.deploymentmanager.panoptica.app"
secret:
token: <hidden.string>
syncIntegrationJob:
api:
url: "us1.k8s-integration.panoptica.app"
k8sec-controller:
controller:
secret:
sharedSecret: <hidden>
agentID: e5e5e5e5-d4d4-c3c3-b2b2-a1a1a1a1a1a1
Then paste that into the values.yaml
file, indenting the dependencies under panoptica-kubernetes-integration, like this:
global:
panopticaIntegration:
id: a1a1a1a1-b2b2-c3c3-d4d4-e5e5e5e5e5e5
kspm:
enabled: true
apiSecurity:
enabled: false
cdr:
enabled: false
mgmtHostname: "portshift.panoptica.app"
panoptica-kubernetes-integration:
kubernetes-integration-deployment-controller:
api:
url: "us1.deploymentmanager.panoptica.app"
secret:
token: <hidden.string>
syncIntegrationJob:
api:
url: "us1.k8s-integration.panoptica.app"
k8sec-controller:
controller:
secret:
sharedSecret: <hidden>
agentID:e5e5e5e5-d4d4-c3c3-b2b2-a1a1a1a1a1a1
For chart.yaml
, take the URL and the Version from the chart info you retrieved from Panoptica. It might look something like this:
URL: oci://public.ecr.aws/ciscoeti/panoptica/charts/panoptica-kubernetes-integration
Version: 1.4.0
Then feed them into your chart.yaml
file, splitting the URL into 'name' and 'repository', like this:
dependencies:
- name: panoptica-kubernetes-integration
repository: oci://public.ecr.aws/ciscoeti/panoptica/charts
version: 1.4.0
Post the values.yaml
and chart.yaml
to your trackable Git repository, and your Argo CD deployment is ready to roll.
Updated 7 months ago