generated: '2026-09-05' method: searched source: https://carvel.dev/imgpkg/docs/v0.46.x/auth/ and https://carvel.dev/kapp-controller/docs/v0.57.x/security-model/ docs: https://carvel.dev/imgpkg/docs/v0.46.x/auth/ note: >- derive-authentication.py found no securitySchemes because there is no OpenAPI to read. Carvel issues no credential of its own; it borrows two credential systems it does not own. Written from the provider's own auth documentation, not inferred. summary: types: [delegated-kubernetes-rbac, registry-credentials] api_key_in: [] oauth2_flows: [] carvel_issued_credentials: false schemes: - name: kubernetes-rbac type: delegated applies_to: [kapp, kctrl, kapp-controller, secretgen-controller] summary: >- kapp and kctrl act as the current kubeconfig context; the controllers act as the ServiceAccount named in the custom resource. Authorization is Kubernetes RBAC end to end. detail: - >- App and PackageInstall carry spec.serviceAccountName — kapp-controller impersonates that ServiceAccount for every fetch, template and deploy step, so a package can never exceed the permissions granted to it. - >- spec.cluster.kubeconfigSecretRef lets an App target a different cluster with a kubeconfig held in a Secret. - >- kapp explicitly supports running without admin privileges in a single namespace and creates no CRDs of its own. docs: https://carvel.dev/kapp-controller/docs/v0.57.x/security-model/ - name: registry-credentials type: delegated applies_to: [imgpkg, kbld, vendir, kapp-controller] summary: OCI registry credentials, resolved in a documented precedence order. precedence: - Environment variables (IMGPKG_REGISTRY_HOSTNAME / _USERNAME / _PASSWORD, indexed and glob-capable since v0.18.0) - IaaS-provided credentials (gcr.io, AWS ECR) - Command flags - Docker config (~/.docker/config.json) detail: - IMGPKG_REGISTRY_HOSTNAME supports glob wildcards; a non-glob hostname wins over a glob one. - >- In-cluster, kapp-controller reads registry credentials from Kubernetes Secrets, and secretgen-controller's SecretExport/SecretImport pair is the supported way to share one placeholder registry Secret across namespaces. docs: https://carvel.dev/imgpkg/docs/v0.46.x/auth/ - name: git-and-http-source-credentials type: delegated applies_to: [vendir, kapp-controller] summary: >- vendir fetches from git, hg, http, githubRelease, helmChart and OCI sources; credentials for those come from the caller's environment or, in-cluster, from a referenced Secret. docs: https://carvel.dev/vendir/docs/v0.46.x/ supply_chain_verification: cosign: true note: >- Release checksums files are cosign-signed and every release body publishes the verification steps — the closest thing Carvel has to an authentication surface it controls itself.