Skip to content

Define restricted Kubernetes output contract (#101) - #102

Merged
AntoineToussaint merged 2 commits into
mainfrom
issue-101-define-a-secret-free-restricted-kubernetes-manifest-contract
Jul 29, 2026
Merged

Define restricted Kubernetes output contract (#101)#102
AntoineToussaint merged 2 commits into
mainfrom
issue-101-define-a-secret-free-restricted-kubernetes-manifest-contract

Conversation

@AntoineToussaint

@AntoineToussaint AntoineToussaint commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Closes #101.

Summary

  • Enforce a secret-free, fail-closed promotable GitOps profile while preserving secret-bearing ephemeral local apply.
  • Apply one restricted workload contract to built-in and custom controllers, including current Pod Security Standards fields, resource/probe requirements, ownership, and server admission evidence.
  • Keep deployment output, configuration, environment inputs, and image digests request-scoped, and publish the complete contract through both Go and Python bindings.

Test plan

  • go test ./...
  • go test -race ./agents/services ./agents/testing ./resources
  • uvx --from poetry==1.8.2 poetry run pytest -q codefly_cli/tests
  • go vet ./agents/services ./agents/testing ./resources
  • go run github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.8 run --new-from-rev=origin/main ./...
  • buf lint proto --path proto/codefly/services/builder/v0/deployment.proto --path proto/codefly/services/builder/v0/docker.proto
  • go mod tidy -diff
  • uvx --from poetry==1.8.2 poetry check --lock
  • git diff --check

Risk

This contract is intentionally fail-closed: promotable GitOps requests now return an error unless both static and requested server-side validation prove the rendered tree promotable. The repository-wide legacy lint baseline remains nonzero, but linting every line changed from origin/main is clean.

@AntoineToussaint
AntoineToussaint merged commit c26256b into main Jul 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Define a secret-free restricted Kubernetes manifest contract for official plugins

1 participant