Argo
Execute scans do runtz com Argo Workflows e Argo CD.
Argo
O runtz se encaixa naturalmente no Argo: o entrypoint da imagem é o binário runtz, portanto uma etapa precisa apenas da imagem e de args. O scan de containers lê as camadas diretamente do registry, sem daemon Docker ou sidecar privilegiado.
Armazenar as credenciais
Crie um Secret no namespace dos workflows:
kubectl create secret generic runtz-credentials -n argo \
--from-literal=RUNTZ_ENDPOINT=https://engine.runtz.dev \
--from-literal=RUNTZ_TOKEN=rtz_live_...Analisar o repositório
Um template parametrizado pode executar SCA e SAST sobre um artefato 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 repositórios privados, configure usernameSecret/passwordSecret ou sshPrivateKeySecret no artefato Git.
Imagens e agendamento
Depois de publicar uma imagem, execute args: ["container", "my-org/my-app:latest"]. Um CronWorkflow com schedule: "0 3 * * *" mantém o dashboard atualizado mesmo sem novos commits.
Scan pós-deploy no Argo CD
Um hook PostSync pode executar runtz k8s após cada sync. Use uma ServiceAccount com acesso de leitura a pods, services, workloads, ingresses e recursos RBAC. Como a imagem mínima não inclui kubectl, copie o binário por um init container e passe --kubectl /tools/kubectl.
Para limitar ao namespace da aplicação, use --namespace my-app; nesse caso, Role e RoleBinding bastam para os recursos do namespace.
Fixe uma tag de release para workflows reproduzíveis. Também é possível analisar manifests sem acesso ao cluster com runtz k8s /src/deploy.