CI runner (Forgejo DinD) runs jobs as Docker containers — no in-cluster SA token available. Industry standard: dedicated SA with minimal RBAC, long-lived token as KUBECONFIG_B64 secret in Forgejo. SA: ci-tekton-trigger (namespace: api) Permissions: create/get/watch/delete PipelineRuns, get TaskRuns, get pod logs Token: kubernetes.io/service-account-token secret