Deploy

Deploy the Edge Policy app to Kubernetes via Helm.

The chart deploys a CronJob that periodically generates filter tables from Prometheus metrics.

Step 1: Prerequisites
Requirement Description
Log10x License Your license key (get one)
Helm Helm CLI installed
kubectl Configured to access your cluster
GitHub Token Personal access token for config repo (create one)
Prometheus Running instance with Edge Reporter metrics (Prometheus or Log10x managed)
Step 2: Add Helm Repository
helm repo add log10x https://log-10x.github.io/helm-charts

Verify the chart appears:

helm search repo log10x-cron
Step 3: Configure Application

Create a new file called my-edge-policy.yaml in your working directory. This Helm values file will be used in all subsequent steps.

my-edge-policy.yaml
# License key added to all pods via TENX_LICENSE env var
log10xLicense: "YOUR-LICENSE-KEY-HERE"

jobs:
  - name: policy-job
    runtimeName: my-edge-policy         # Optional: identifies this instance
    schedule: "*/15 * * * *"            # Run every 15 minutes
    args:
      - "@apps/edge/policy"
Step 4: GitOps (optional)

Log10x uses GitOps to manage configuration centrally.

Setup steps:

  1. Fork the Config Repository
  2. Create a branch for your configuration
  3. Edit the app configuration to match your Prometheus input and filter table output

Add GitHub credentials to your my-edge-policy.yaml:

my-edge-policy.yaml
jobs:
  - name: policy-job
    # ... (previous config)

    github:
      config:
        token: "YOUR-GITHUB-TOKEN"
        repo: "YOUR-ACCOUNT/REPO-NAME"
        branch: "my-edge-policy-config"    # Optional: defaults to main

An Init Container pulls your config before each job run, ensuring always up-to-date configuration.

Step 5: Configure Secrets

Store sensitive credentials in Kubernetes Secrets rather than plain files.

Important: Only add secrets for modules you've configured in your Edge Policy app configuration.

Create the secret:

kubectl create secret generic edge-policy-credentials \
  --from-literal=github-token=YOUR_GITHUB_TOKEN \
  --from-literal=prometheus-token=YOUR_PROMETHEUS_TOKEN

Add secret references to your my-edge-policy.yaml:

my-edge-policy.yaml
jobs:
  - name: policy-job
    # ... (previous config)

    extraEnv:
      # For Prometheus input (if authentication required)
      - name: PROMETHEUS_TOKEN
        valueFrom:
          secretKeyRef:
            name: edge-policy-credentials
            key: prometheus-token

      # For GitHub filter table output
      - name: GH_TOKEN
        valueFrom:
          secretKeyRef:
            name: edge-policy-credentials
            key: github-token
Step 6: Deploy
helm install my-edge-policy log10x/log10x-cron -f my-edge-policy.yaml
Step 7: Verify

Check the CronJob was created:

kubectl get cronjobs

Trigger a manual run to test:

kubectl create job --from=cronjob/policy-job my-edge-policy-test

Check pod logs for errors:

kubectl logs -l job-name=my-edge-policy-test --tail=100

Verify no errors appear in the log file.

Quickstart Full Sample
my-edge-policy.yaml
log10xLicense: "YOUR-LICENSE-KEY-HERE"

jobs:
  - name: edge-policy
    runtimeName: my-first-edge-policy
    schedule: "*/15 * * * *"
    args:
      - "@apps/edge/policy"

    github:
      config:
        token: "YOUR-GITHUB-TOKEN"
        repo: "YOUR-ACCOUNT/REPO-NAME"
        branch: "my-edge-policy-config"

    extraEnv:
      - name: GH_TOKEN
        valueFrom:
          secretKeyRef:
            name: edge-policy-credentials
            key: github-token