Argo
Ejecuta análisis de runtz con Argo Workflows y Argo CD.
Argo
runtz encaja de forma natural en Argo: el entrypoint de la imagen es el binario runtz, por lo que un paso solo necesita la imagen y args. El análisis de contenedores lee las capas directamente del registry, sin daemon Docker ni sidecar privilegiado.
Guardar las credenciales
Crea un Secret en el namespace de los workflows:
kubectl create secret generic runtz-credentials -n argo \
--from-literal=RUNTZ_ENDPOINT=https://engine.runtz.dev \
--from-literal=RUNTZ_TOKEN=rtz_live_...Analizar el repositorio
Un template parametrizado puede ejecutar SCA y SAST sobre un artefacto Git:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: runtz-scans-
spec:
entrypoint: security-scans
templates:
- name: security-scans
dag:
tasks:
- name: sca
template: runtz-scan
arguments: { parameters: [{ name: command, value: sca }] }
- name: sast
template: runtz-scan
arguments: { parameters: [{ name: command, value: sast }] }
- name: runtz-scan
inputs:
parameters: [{ name: command }]
artifacts:
- name: source
path: /src
git: { repo: https://github.com/my-org/my-app.git, revision: main }
container:
image: runtzdev/runtz-cli:latest
args: ["{{inputs.parameters.command}}", /src, --project, my-app]
envFrom:
- secretRef: { name: runtz-credentials }Para repositorios privados, configura usernameSecret/passwordSecret o sshPrivateKeySecret en el artefacto Git.
Imágenes y programación
Después de publicar una imagen, ejecuta args: ["container", "my-org/my-app:latest"]. Un CronWorkflow con schedule: "0 3 * * *" mantiene el dashboard actualizado incluso sin commits nuevos.
Análisis después del despliegue en Argo CD
Un hook PostSync puede ejecutar runtz k8s después de cada sync. Usa una ServiceAccount con acceso de lectura a pods, services, workloads, ingresses y recursos RBAC. Como la imagen mínima no incluye kubectl, copia el binario con un init container y pasa --kubectl /tools/kubectl.
Para limitarlo al namespace de la aplicación, usa --namespace my-app; en ese caso, Role y RoleBinding son suficientes para los recursos del namespace.
Fija una tag de release para workflows reproducibles. También puedes analizar manifiestos sin acceso al clúster con runtz k8s /src/deploy.