├── .dockerignore ├── .github ├── CODEOWNERS └── workflows │ ├── clippy.yaml │ ├── crdgen.yaml │ ├── release-chart.yaml │ ├── release-image.yaml │ ├── rustfmt.yaml │ └── test.yaml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── Dockerfile ├── LICENSE ├── README.md ├── example-slack-notification.png ├── examples ├── cronpolicy │ ├── admission-webhook-without-high-availability.yaml │ └── simple.yaml ├── mutatingrule │ ├── add-ttl-to-jobs.yaml │ ├── simple-jsonpatch-diff │ │ ├── request.yaml │ │ ├── result.yaml │ │ ├── rule.yaml │ │ └── testcase.yaml │ ├── simple-with-validation │ │ ├── request-bad.yaml │ │ ├── request-good.yaml │ │ ├── request-great.yaml │ │ ├── result.yaml │ │ ├── rule.yaml │ │ └── testcase.yaml │ └── simple │ │ ├── request.yaml │ │ ├── result.yaml │ │ ├── rule.yaml │ │ └── testcase.yaml ├── testcase │ └── multiple-mutation │ │ └── testcase.yaml └── validatingrule │ ├── block-pod-exec-by-namespace-annotation.yaml │ ├── delete-protection.yaml │ ├── disallow-default-namespace.yaml │ ├── disallow-wildcard-resources.yaml │ ├── simple-kube-get │ ├── block-namespace.yaml │ ├── request.yaml │ ├── rule.yaml │ └── testcase.yaml │ ├── simple-kube-list │ ├── kube-list-output.yaml │ ├── request-bad.yaml │ ├── request-empty-unique.yaml │ ├── request-good.yaml │ ├── rule.yaml │ └── testcase.yaml │ ├── simple │ ├── bad-request.yaml │ ├── good-request.yaml │ ├── rule.yaml │ └── testcase.yaml │ └── whitelisting-image-registries.yaml ├── helm ├── .helmignore ├── Chart.yaml ├── README.md ├── templates │ ├── _helpers.tpl │ ├── cert.yaml │ ├── crds │ │ └── customresourcedefinition.yaml │ ├── deployment.yaml │ ├── issuer.yaml │ ├── mutatingwebhookconfiguration.yaml │ ├── service.yaml │ └── serviceaccount.yaml └── values.yaml ├── rust-toolchain.toml └── src ├── bin ├── checker.rs ├── cli.rs ├── controller.rs ├── crdgen.rs └── webhook.rs ├── checker.rs ├── checker └── runtime.js ├── config.rs ├── filewatcher.rs ├── handler.rs ├── handler ├── internal.rs ├── js.rs ├── js │ └── helper.rs └── runtime.js ├── js.rs ├── js ├── helper.rs └── runtime.js ├── leader_election.rs ├── lib.rs ├── reconcile.rs ├── reconcile ├── policy.rs └── rule.rs ├── types.rs ├── types ├── policy.rs ├── rule.rs └── testcase.rs └── util.rs /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/.dockerignore -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @devsisters/infra 2 | -------------------------------------------------------------------------------- /.github/workflows/clippy.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/.github/workflows/clippy.yaml -------------------------------------------------------------------------------- /.github/workflows/crdgen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/.github/workflows/crdgen.yaml -------------------------------------------------------------------------------- /.github/workflows/release-chart.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/.github/workflows/release-chart.yaml -------------------------------------------------------------------------------- /.github/workflows/release-image.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/.github/workflows/release-image.yaml -------------------------------------------------------------------------------- /.github/workflows/rustfmt.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/.github/workflows/rustfmt.yaml -------------------------------------------------------------------------------- /.github/workflows/test.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/.github/workflows/test.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/Cargo.toml -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/README.md -------------------------------------------------------------------------------- /example-slack-notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/example-slack-notification.png -------------------------------------------------------------------------------- /examples/cronpolicy/admission-webhook-without-high-availability.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/cronpolicy/admission-webhook-without-high-availability.yaml -------------------------------------------------------------------------------- /examples/cronpolicy/simple.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/cronpolicy/simple.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/add-ttl-to-jobs.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/add-ttl-to-jobs.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/simple-jsonpatch-diff/request.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/simple-jsonpatch-diff/request.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/simple-jsonpatch-diff/result.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/simple-jsonpatch-diff/result.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/simple-jsonpatch-diff/rule.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/simple-jsonpatch-diff/rule.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/simple-jsonpatch-diff/testcase.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/simple-jsonpatch-diff/testcase.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/simple-with-validation/request-bad.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/simple-with-validation/request-bad.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/simple-with-validation/request-good.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/simple-with-validation/request-good.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/simple-with-validation/request-great.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/simple-with-validation/request-great.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/simple-with-validation/result.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/simple-with-validation/result.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/simple-with-validation/rule.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/simple-with-validation/rule.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/simple-with-validation/testcase.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/simple-with-validation/testcase.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/simple/request.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/simple/request.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/simple/result.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/simple/result.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/simple/rule.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/simple/rule.yaml -------------------------------------------------------------------------------- /examples/mutatingrule/simple/testcase.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/mutatingrule/simple/testcase.yaml -------------------------------------------------------------------------------- /examples/testcase/multiple-mutation/testcase.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/testcase/multiple-mutation/testcase.yaml -------------------------------------------------------------------------------- /examples/validatingrule/block-pod-exec-by-namespace-annotation.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/block-pod-exec-by-namespace-annotation.yaml -------------------------------------------------------------------------------- /examples/validatingrule/delete-protection.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/delete-protection.yaml -------------------------------------------------------------------------------- /examples/validatingrule/disallow-default-namespace.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/disallow-default-namespace.yaml -------------------------------------------------------------------------------- /examples/validatingrule/disallow-wildcard-resources.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/disallow-wildcard-resources.yaml -------------------------------------------------------------------------------- /examples/validatingrule/simple-kube-get/block-namespace.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/simple-kube-get/block-namespace.yaml -------------------------------------------------------------------------------- /examples/validatingrule/simple-kube-get/request.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/simple-kube-get/request.yaml -------------------------------------------------------------------------------- /examples/validatingrule/simple-kube-get/rule.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/simple-kube-get/rule.yaml -------------------------------------------------------------------------------- /examples/validatingrule/simple-kube-get/testcase.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/simple-kube-get/testcase.yaml -------------------------------------------------------------------------------- /examples/validatingrule/simple-kube-list/kube-list-output.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/simple-kube-list/kube-list-output.yaml -------------------------------------------------------------------------------- /examples/validatingrule/simple-kube-list/request-bad.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/simple-kube-list/request-bad.yaml -------------------------------------------------------------------------------- /examples/validatingrule/simple-kube-list/request-empty-unique.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/simple-kube-list/request-empty-unique.yaml -------------------------------------------------------------------------------- /examples/validatingrule/simple-kube-list/request-good.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/simple-kube-list/request-good.yaml -------------------------------------------------------------------------------- /examples/validatingrule/simple-kube-list/rule.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/simple-kube-list/rule.yaml -------------------------------------------------------------------------------- /examples/validatingrule/simple-kube-list/testcase.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/simple-kube-list/testcase.yaml -------------------------------------------------------------------------------- /examples/validatingrule/simple/bad-request.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/simple/bad-request.yaml -------------------------------------------------------------------------------- /examples/validatingrule/simple/good-request.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/simple/good-request.yaml -------------------------------------------------------------------------------- /examples/validatingrule/simple/rule.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/simple/rule.yaml -------------------------------------------------------------------------------- /examples/validatingrule/simple/testcase.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/simple/testcase.yaml -------------------------------------------------------------------------------- /examples/validatingrule/whitelisting-image-registries.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/examples/validatingrule/whitelisting-image-registries.yaml -------------------------------------------------------------------------------- /helm/.helmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/helm/.helmignore -------------------------------------------------------------------------------- /helm/Chart.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/helm/Chart.yaml -------------------------------------------------------------------------------- /helm/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/helm/README.md -------------------------------------------------------------------------------- /helm/templates/_helpers.tpl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/helm/templates/_helpers.tpl -------------------------------------------------------------------------------- /helm/templates/cert.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/helm/templates/cert.yaml -------------------------------------------------------------------------------- /helm/templates/crds/customresourcedefinition.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/helm/templates/crds/customresourcedefinition.yaml -------------------------------------------------------------------------------- /helm/templates/deployment.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/helm/templates/deployment.yaml -------------------------------------------------------------------------------- /helm/templates/issuer.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/helm/templates/issuer.yaml -------------------------------------------------------------------------------- /helm/templates/mutatingwebhookconfiguration.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/helm/templates/mutatingwebhookconfiguration.yaml -------------------------------------------------------------------------------- /helm/templates/service.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/helm/templates/service.yaml -------------------------------------------------------------------------------- /helm/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/helm/templates/serviceaccount.yaml -------------------------------------------------------------------------------- /helm/values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/helm/values.yaml -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/rust-toolchain.toml -------------------------------------------------------------------------------- /src/bin/checker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/bin/checker.rs -------------------------------------------------------------------------------- /src/bin/cli.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/bin/cli.rs -------------------------------------------------------------------------------- /src/bin/controller.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/bin/controller.rs -------------------------------------------------------------------------------- /src/bin/crdgen.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/bin/crdgen.rs -------------------------------------------------------------------------------- /src/bin/webhook.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/bin/webhook.rs -------------------------------------------------------------------------------- /src/checker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/checker.rs -------------------------------------------------------------------------------- /src/checker/runtime.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/checker/runtime.js -------------------------------------------------------------------------------- /src/config.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/config.rs -------------------------------------------------------------------------------- /src/filewatcher.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/filewatcher.rs -------------------------------------------------------------------------------- /src/handler.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/handler.rs -------------------------------------------------------------------------------- /src/handler/internal.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/handler/internal.rs -------------------------------------------------------------------------------- /src/handler/js.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/handler/js.rs -------------------------------------------------------------------------------- /src/handler/js/helper.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/handler/js/helper.rs -------------------------------------------------------------------------------- /src/handler/runtime.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/handler/runtime.js -------------------------------------------------------------------------------- /src/js.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/js.rs -------------------------------------------------------------------------------- /src/js/helper.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/js/helper.rs -------------------------------------------------------------------------------- /src/js/runtime.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/js/runtime.js -------------------------------------------------------------------------------- /src/leader_election.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/leader_election.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/reconcile.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/reconcile.rs -------------------------------------------------------------------------------- /src/reconcile/policy.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/reconcile/policy.rs -------------------------------------------------------------------------------- /src/reconcile/rule.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/reconcile/rule.rs -------------------------------------------------------------------------------- /src/types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/types.rs -------------------------------------------------------------------------------- /src/types/policy.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/types/policy.rs -------------------------------------------------------------------------------- /src/types/rule.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/types/rule.rs -------------------------------------------------------------------------------- /src/types/testcase.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/types/testcase.rs -------------------------------------------------------------------------------- /src/util.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devsisters/checkpoint/HEAD/src/util.rs --------------------------------------------------------------------------------