Files
content-ingestion-agent/docs/operator-runbook.md

2.0 KiB

Content Ingestion Agent operator runbook

Deploying

Apply k8s/configmap.yaml, k8s/deployment.yaml, and k8s/service.yaml in that order. The deployment intentionally does not contain credentials. Before applying it, provision a Kubernetes Secret named content-ingestion-agent-secrets through the cluster's approved secret manager or External Secrets controller. The Secret must provide github-token and sharepoint-client-secret; do not commit a Secret manifest, token, certificate, or client secret to this repository.

Verify the resulting pod with kubectl -n <namespace> get pods -l app.kubernetes.io/name=content-ingestion-agent and inspect only non-sensitive status and logs. Rotate credentials in the external secret manager, then restart the deployment to pick up the rotated values.

Capability and approval boundary

The agent can read configured GitHub repositories and SharePoint content. Its publication connector can perform the world-changing action of writing/publishing content to the configured CMS. Publication is disabled by default by PUBLICATION_ENABLED=false and remains approval-gated by REQUIRE_PUBLICATION_APPROVAL=true. Operators must review the proposed changes and explicitly approve a publication request; never grant the runtime identity broader repository or CMS permissions than required.

If publication is enabled for an environment, record the approver, target, change summary, and rollback procedure before deployment. Test ingestion against a non-production source first. To stop publication immediately, set PUBLICATION_ENABLED=false in the ConfigMap and roll out the deployment.

Secret-handling checks

  • Credentials are consumed only through secretRef/secretKeyRef environment bindings.
  • ConfigMap data is limited to non-sensitive runtime flags and provider names.
  • Do not use kubectl get secret ... -o yaml in support output, and do not place secret values in issue reports or logs.
  • The workflow and manifests contain no literal credential values.