Deploy with Flux CD - Administrator Guide - Cortex CLOUD

KSPM-Documentation

Product
Cortex Cloud Application Security > Cortex CLOUD
Creation date
2025-05-11
Last date published
2026-06-11
Category
Administrator Guide

Deploy the Cortex KSPM agent to on-premises Kubernetes clusters using Flux CD. Flux CD is a declarative GitOps continuous delivery tool that automates agent deployment and configuration synchronization from a Git repository.

  1. Install the following Flux controllers:

    • Source Controller

    • Kustomize Controller

    • Helm Controller

    • Notification Controller

    flux install
  2. Verify that all controllers are running.

    flux check
    
    #Expected output:
    ✔ helm-controller: deployment ready
    ✔ kustomize-controller: deployment ready
    ✔ notification-controller: deployment ready
    ✔ source-controller: deployment ready
  3. Create the authentication secret.

    # For username/password or token (HTTP)
    kubectl create secret generic gitlab-auth \
      --namespace=flux-system \
      --from-literal=username=<GIT_USERNAME> \
      --from-literal=password=<GIT_PASSWORD_OR_TOKEN>
      
    #For SSH-based authentication
    flux create secret git gitlab-auth \
      --namespace=flux-system \
      --url=ssh://git@gitlab.example.com/kspm/kspm-gitops.git \
      --private-key-file=<path-to-private-key>
  4. Create a GitRepository source.

    flux create source git kspm-gitops \
      --url=https://gitlab.example.com/kspm/kspm-gitops.git \
      --branch=main \
      --interval=1m \
      --secret-ref=gitlab-auth \
      --namespace=flux-system
  5. Verify the source is connected.

    flux get source git kspm-gitops
    
    #Expected output:
    NAME         REVISION          SUSPENDED  READY  MESSAGE
    kspm-gitops  main@sha1:abc123  False      True   stored artifact for revision 'main@sha1:abc123'
  6. Deploy the connector.

    ```bash    
    flux create kustomization kspm-agent \     
    --source=GitRepository/kspm-gitops \      
    --path="./charts/overlays" \      
    --prune=true \      
    --interval=5m    
    ```