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:

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.