gitextract_fvvnmo3k/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yaml │ │ ├── config.yml │ │ └── feature_request.yaml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── SECURITY.md │ ├── dependabot.yml │ ├── instructions/ │ │ └── kubebuilder.instructions.md │ └── workflows/ │ ├── apidiff.yml │ ├── codeql.yml │ ├── coverage.yml │ ├── cross-platform-tests.yml │ ├── external-plugin.yml │ ├── legacy-webhook-path.yml │ ├── lint-sample.yml │ ├── lint.yml │ ├── release-version-ci.yml │ ├── release.yml │ ├── scorecard.yml │ ├── spaces.yml │ ├── test-alpha-generate.yml │ ├── test-book.yml │ ├── test-devcontainer.yml │ ├── test-e2e-samples.yml │ ├── test-helm-book.yml │ ├── test-helm-samples.yml │ ├── testdata.yml │ └── verify.yml ├── .gitignore ├── .golangci.yml ├── .yamllint ├── .yamllint-helm ├── AGENTS.md ├── CONTRIBUTING.md ├── DESIGN.md ├── LICENSE ├── Makefile ├── OWNERS ├── OWNERS_ALIASES ├── README.md ├── RELEASE.md ├── SECURITY_CONTACTS ├── VERSIONING.md ├── build/ │ └── .goreleaser.yml ├── code-of-conduct.md ├── designs/ │ ├── README.md │ ├── code-generate-image-plugin.md │ ├── crd_version_conversion.md │ ├── discontinue_usage_of_kube_rbac_proxy.md │ ├── extensible-cli-and-scaffolding-plugins-phase-1-5.md │ ├── extensible-cli-and-scaffolding-plugins-phase-1.md │ ├── extensible-cli-and-scaffolding-plugins-phase-2.md │ ├── helm-chart-autogenerate-plugin.md │ ├── helper_to_upgrade_projects_by_rescaffolding.md │ ├── integrating-kubebuilder-and-osdk.md │ ├── simplified-scaffolding.md │ ├── template.md │ └── update_action.md ├── docs/ │ ├── CONTRIBUTING-ROLES.md │ ├── README.md │ ├── book/ │ │ ├── .firebaserc │ │ ├── book.toml │ │ ├── functions/ │ │ │ └── handle-version.js │ │ ├── install-and-build.sh │ │ ├── litgo.sh │ │ ├── markerdocs.sh │ │ ├── src/ │ │ │ ├── SUMMARY.md │ │ │ ├── TODO.md │ │ │ ├── architecture.md │ │ │ ├── cronjob-tutorial/ │ │ │ │ ├── api-design.md │ │ │ │ ├── basic-project.md │ │ │ │ ├── cert-manager.md │ │ │ │ ├── controller-implementation.md │ │ │ │ ├── controller-overview.md │ │ │ │ ├── cronjob-tutorial.md │ │ │ │ ├── empty-main.md │ │ │ │ ├── gvks.md │ │ │ │ ├── main-revisited.md │ │ │ │ ├── new-api.md │ │ │ │ ├── other-api-files.md │ │ │ │ ├── running-webhook.md │ │ │ │ ├── running.md │ │ │ │ ├── testdata/ │ │ │ │ │ ├── emptyapi.go │ │ │ │ │ ├── emptycontroller.go │ │ │ │ │ ├── emptymain.go │ │ │ │ │ ├── finalizer_example.go │ │ │ │ │ └── project/ │ │ │ │ │ ├── .custom-gcl.yml │ │ │ │ │ ├── .devcontainer/ │ │ │ │ │ │ ├── devcontainer.json │ │ │ │ │ │ └── post-install.sh │ │ │ │ │ ├── .dockerignore │ │ │ │ │ ├── .github/ │ │ │ │ │ │ └── workflows/ │ │ │ │ │ │ ├── lint.yml │ │ │ │ │ │ ├── test-chart.yml │ │ │ │ │ │ ├── test-e2e.yml │ │ │ │ │ │ └── test.yml │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .golangci.yml │ │ │ │ │ ├── AGENTS.md │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── PROJECT │ │ │ │ │ ├── README.md │ │ │ │ │ ├── api/ │ │ │ │ │ │ └── v1/ │ │ │ │ │ │ ├── cronjob_types.go │ │ │ │ │ │ ├── groupversion_info.go │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ ├── cmd/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── certmanager/ │ │ │ │ │ │ │ ├── certificate-metrics.yaml │ │ │ │ │ │ │ ├── certificate-webhook.yaml │ │ │ │ │ │ │ ├── issuer.yaml │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ └── kustomizeconfig.yaml │ │ │ │ │ │ ├── crd/ │ │ │ │ │ │ │ ├── bases/ │ │ │ │ │ │ │ │ └── batch.tutorial.kubebuilder.io_cronjobs.yaml │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ └── kustomizeconfig.yaml │ │ │ │ │ │ ├── default/ │ │ │ │ │ │ │ ├── cert_metrics_manager_patch.yaml │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ ├── manager_metrics_patch.yaml │ │ │ │ │ │ │ ├── manager_webhook_patch.yaml │ │ │ │ │ │ │ └── metrics_service.yaml │ │ │ │ │ │ ├── manager/ │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ └── manager.yaml │ │ │ │ │ │ ├── network-policy/ │ │ │ │ │ │ │ ├── allow-metrics-traffic.yaml │ │ │ │ │ │ │ ├── allow-webhook-traffic.yaml │ │ │ │ │ │ │ └── kustomization.yaml │ │ │ │ │ │ ├── prometheus/ │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ ├── monitor.yaml │ │ │ │ │ │ │ └── monitor_tls_patch.yaml │ │ │ │ │ │ ├── rbac/ │ │ │ │ │ │ │ ├── cronjob_admin_role.yaml │ │ │ │ │ │ │ ├── cronjob_editor_role.yaml │ │ │ │ │ │ │ ├── cronjob_viewer_role.yaml │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ ├── leader_election_role.yaml │ │ │ │ │ │ │ ├── leader_election_role_binding.yaml │ │ │ │ │ │ │ ├── metrics_auth_role.yaml │ │ │ │ │ │ │ ├── metrics_auth_role_binding.yaml │ │ │ │ │ │ │ ├── metrics_reader_role.yaml │ │ │ │ │ │ │ ├── role.yaml │ │ │ │ │ │ │ ├── role_binding.yaml │ │ │ │ │ │ │ └── service_account.yaml │ │ │ │ │ │ ├── samples/ │ │ │ │ │ │ │ ├── batch_v1_cronjob.yaml │ │ │ │ │ │ │ └── kustomization.yaml │ │ │ │ │ │ └── webhook/ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ ├── manifests.yaml │ │ │ │ │ │ └── service.yaml │ │ │ │ │ ├── dist/ │ │ │ │ │ │ ├── chart/ │ │ │ │ │ │ │ ├── .helmignore │ │ │ │ │ │ │ ├── Chart.yaml │ │ │ │ │ │ │ ├── templates/ │ │ │ │ │ │ │ │ ├── NOTES.txt │ │ │ │ │ │ │ │ ├── _helpers.tpl │ │ │ │ │ │ │ │ ├── cert-manager/ │ │ │ │ │ │ │ │ │ ├── metrics-certs.yaml │ │ │ │ │ │ │ │ │ ├── selfsigned-issuer.yaml │ │ │ │ │ │ │ │ │ └── serving-cert.yaml │ │ │ │ │ │ │ │ ├── crd/ │ │ │ │ │ │ │ │ │ └── cronjobs.batch.tutorial.kubebuilder.io.yaml │ │ │ │ │ │ │ │ ├── manager/ │ │ │ │ │ │ │ │ │ └── manager.yaml │ │ │ │ │ │ │ │ ├── metrics/ │ │ │ │ │ │ │ │ │ └── controller-manager-metrics-service.yaml │ │ │ │ │ │ │ │ ├── prometheus/ │ │ │ │ │ │ │ │ │ └── controller-manager-metrics-monitor.yaml │ │ │ │ │ │ │ │ ├── rbac/ │ │ │ │ │ │ │ │ │ ├── controller-manager.yaml │ │ │ │ │ │ │ │ │ ├── cronjob-admin-role.yaml │ │ │ │ │ │ │ │ │ ├── cronjob-editor-role.yaml │ │ │ │ │ │ │ │ │ ├── cronjob-viewer-role.yaml │ │ │ │ │ │ │ │ │ ├── leader-election-role.yaml │ │ │ │ │ │ │ │ │ ├── leader-election-rolebinding.yaml │ │ │ │ │ │ │ │ │ ├── manager-role.yaml │ │ │ │ │ │ │ │ │ ├── manager-rolebinding.yaml │ │ │ │ │ │ │ │ │ ├── metrics-auth-role.yaml │ │ │ │ │ │ │ │ │ ├── metrics-auth-rolebinding.yaml │ │ │ │ │ │ │ │ │ └── metrics-reader.yaml │ │ │ │ │ │ │ │ └── webhook/ │ │ │ │ │ │ │ │ ├── mutating-webhook-configuration.yaml │ │ │ │ │ │ │ │ ├── validating-webhook-configuration.yaml │ │ │ │ │ │ │ │ └── webhook-service.yaml │ │ │ │ │ │ │ └── values.yaml │ │ │ │ │ │ └── install.yaml │ │ │ │ │ ├── go.mod │ │ │ │ │ ├── go.sum │ │ │ │ │ ├── hack/ │ │ │ │ │ │ └── boilerplate.go.txt │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── cronjob_controller.go │ │ │ │ │ │ │ ├── cronjob_controller_test.go │ │ │ │ │ │ │ └── suite_test.go │ │ │ │ │ │ └── webhook/ │ │ │ │ │ │ └── v1/ │ │ │ │ │ │ ├── cronjob_webhook.go │ │ │ │ │ │ ├── cronjob_webhook_test.go │ │ │ │ │ │ └── webhook_suite_test.go │ │ │ │ │ └── test/ │ │ │ │ │ ├── e2e/ │ │ │ │ │ │ ├── e2e_suite_test.go │ │ │ │ │ │ └── e2e_test.go │ │ │ │ │ └── utils/ │ │ │ │ │ └── utils.go │ │ │ │ ├── webhook-implementation.md │ │ │ │ └── writing-tests.md │ │ │ ├── faq.md │ │ │ ├── getting-started/ │ │ │ │ └── testdata/ │ │ │ │ └── project/ │ │ │ │ ├── .custom-gcl.yml │ │ │ │ ├── .devcontainer/ │ │ │ │ │ ├── devcontainer.json │ │ │ │ │ └── post-install.sh │ │ │ │ ├── .dockerignore │ │ │ │ ├── .github/ │ │ │ │ │ └── workflows/ │ │ │ │ │ ├── auto_update.yml │ │ │ │ │ ├── lint.yml │ │ │ │ │ ├── test-chart.yml │ │ │ │ │ ├── test-e2e.yml │ │ │ │ │ └── test.yml │ │ │ │ ├── .gitignore │ │ │ │ ├── .golangci.yml │ │ │ │ ├── AGENTS.md │ │ │ │ ├── Dockerfile │ │ │ │ ├── Makefile │ │ │ │ ├── PROJECT │ │ │ │ ├── README.md │ │ │ │ ├── api/ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ ├── groupversion_info.go │ │ │ │ │ ├── memcached_types.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ ├── cmd/ │ │ │ │ │ └── main.go │ │ │ │ ├── config/ │ │ │ │ │ ├── crd/ │ │ │ │ │ │ ├── bases/ │ │ │ │ │ │ │ └── cache.example.com_memcacheds.yaml │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ └── kustomizeconfig.yaml │ │ │ │ │ ├── default/ │ │ │ │ │ │ ├── cert_metrics_manager_patch.yaml │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ ├── manager_metrics_patch.yaml │ │ │ │ │ │ └── metrics_service.yaml │ │ │ │ │ ├── manager/ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ └── manager.yaml │ │ │ │ │ ├── network-policy/ │ │ │ │ │ │ ├── allow-metrics-traffic.yaml │ │ │ │ │ │ └── kustomization.yaml │ │ │ │ │ ├── prometheus/ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ ├── monitor.yaml │ │ │ │ │ │ └── monitor_tls_patch.yaml │ │ │ │ │ ├── rbac/ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ ├── leader_election_role.yaml │ │ │ │ │ │ ├── leader_election_role_binding.yaml │ │ │ │ │ │ ├── memcached_admin_role.yaml │ │ │ │ │ │ ├── memcached_editor_role.yaml │ │ │ │ │ │ ├── memcached_viewer_role.yaml │ │ │ │ │ │ ├── metrics_auth_role.yaml │ │ │ │ │ │ ├── metrics_auth_role_binding.yaml │ │ │ │ │ │ ├── metrics_reader_role.yaml │ │ │ │ │ │ ├── role.yaml │ │ │ │ │ │ ├── role_binding.yaml │ │ │ │ │ │ └── service_account.yaml │ │ │ │ │ └── samples/ │ │ │ │ │ ├── cache_v1alpha1_memcached.yaml │ │ │ │ │ └── kustomization.yaml │ │ │ │ ├── dist/ │ │ │ │ │ ├── chart/ │ │ │ │ │ │ ├── .helmignore │ │ │ │ │ │ ├── Chart.yaml │ │ │ │ │ │ ├── templates/ │ │ │ │ │ │ │ ├── NOTES.txt │ │ │ │ │ │ │ ├── _helpers.tpl │ │ │ │ │ │ │ ├── crd/ │ │ │ │ │ │ │ │ └── memcacheds.cache.example.com.yaml │ │ │ │ │ │ │ ├── manager/ │ │ │ │ │ │ │ │ └── manager.yaml │ │ │ │ │ │ │ ├── metrics/ │ │ │ │ │ │ │ │ └── controller-manager-metrics-service.yaml │ │ │ │ │ │ │ ├── monitoring/ │ │ │ │ │ │ │ │ └── servicemonitor.yaml │ │ │ │ │ │ │ └── rbac/ │ │ │ │ │ │ │ ├── controller-manager.yaml │ │ │ │ │ │ │ ├── leader-election-role.yaml │ │ │ │ │ │ │ ├── leader-election-rolebinding.yaml │ │ │ │ │ │ │ ├── manager-role.yaml │ │ │ │ │ │ │ ├── manager-rolebinding.yaml │ │ │ │ │ │ │ ├── memcached-admin-role.yaml │ │ │ │ │ │ │ ├── memcached-editor-role.yaml │ │ │ │ │ │ │ ├── memcached-viewer-role.yaml │ │ │ │ │ │ │ ├── metrics-auth-role.yaml │ │ │ │ │ │ │ ├── metrics-auth-rolebinding.yaml │ │ │ │ │ │ │ └── metrics-reader.yaml │ │ │ │ │ │ └── values.yaml │ │ │ │ │ └── install.yaml │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ ├── hack/ │ │ │ │ │ └── boilerplate.go.txt │ │ │ │ ├── internal/ │ │ │ │ │ └── controller/ │ │ │ │ │ ├── memcached_controller.go │ │ │ │ │ ├── memcached_controller_test.go │ │ │ │ │ └── suite_test.go │ │ │ │ └── test/ │ │ │ │ ├── e2e/ │ │ │ │ │ ├── e2e_suite_test.go │ │ │ │ │ └── e2e_test.go │ │ │ │ └── utils/ │ │ │ │ └── utils.go │ │ │ ├── getting-started.md │ │ │ ├── introduction.md │ │ │ ├── logos/ │ │ │ │ └── README.md │ │ │ ├── migration/ │ │ │ │ ├── ai-helpers.md │ │ │ │ ├── discovery-commands.md │ │ │ │ ├── manual-process.md │ │ │ │ ├── multi-group.md │ │ │ │ ├── namespace-scoped.md │ │ │ │ ├── port-code.md │ │ │ │ └── reorganize-layout.md │ │ │ ├── migrations.md │ │ │ ├── multiversion-tutorial/ │ │ │ │ ├── api-changes.md │ │ │ │ ├── conversion-concepts.md │ │ │ │ ├── conversion.md │ │ │ │ ├── deployment.md │ │ │ │ ├── testdata/ │ │ │ │ │ └── project/ │ │ │ │ │ ├── .custom-gcl.yml │ │ │ │ │ ├── .devcontainer/ │ │ │ │ │ │ ├── devcontainer.json │ │ │ │ │ │ └── post-install.sh │ │ │ │ │ ├── .dockerignore │ │ │ │ │ ├── .github/ │ │ │ │ │ │ └── workflows/ │ │ │ │ │ │ ├── lint.yml │ │ │ │ │ │ ├── test-chart.yml │ │ │ │ │ │ ├── test-e2e.yml │ │ │ │ │ │ └── test.yml │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .golangci.yml │ │ │ │ │ ├── AGENTS.md │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── PROJECT │ │ │ │ │ ├── README.md │ │ │ │ │ ├── api/ │ │ │ │ │ │ ├── v1/ │ │ │ │ │ │ │ ├── cronjob_conversion.go │ │ │ │ │ │ │ ├── cronjob_types.go │ │ │ │ │ │ │ ├── groupversion_info.go │ │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ │ └── v2/ │ │ │ │ │ │ ├── cronjob_conversion.go │ │ │ │ │ │ ├── cronjob_types.go │ │ │ │ │ │ ├── groupversion_info.go │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ ├── cmd/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── certmanager/ │ │ │ │ │ │ │ ├── certificate-metrics.yaml │ │ │ │ │ │ │ ├── certificate-webhook.yaml │ │ │ │ │ │ │ ├── issuer.yaml │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ └── kustomizeconfig.yaml │ │ │ │ │ │ ├── crd/ │ │ │ │ │ │ │ ├── bases/ │ │ │ │ │ │ │ │ └── batch.tutorial.kubebuilder.io_cronjobs.yaml │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ ├── kustomizeconfig.yaml │ │ │ │ │ │ │ └── patches/ │ │ │ │ │ │ │ └── webhook_in_cronjobs.yaml │ │ │ │ │ │ ├── default/ │ │ │ │ │ │ │ ├── cert_metrics_manager_patch.yaml │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ ├── manager_metrics_patch.yaml │ │ │ │ │ │ │ ├── manager_webhook_patch.yaml │ │ │ │ │ │ │ └── metrics_service.yaml │ │ │ │ │ │ ├── manager/ │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ └── manager.yaml │ │ │ │ │ │ ├── network-policy/ │ │ │ │ │ │ │ ├── allow-metrics-traffic.yaml │ │ │ │ │ │ │ ├── allow-webhook-traffic.yaml │ │ │ │ │ │ │ └── kustomization.yaml │ │ │ │ │ │ ├── prometheus/ │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ ├── monitor.yaml │ │ │ │ │ │ │ └── monitor_tls_patch.yaml │ │ │ │ │ │ ├── rbac/ │ │ │ │ │ │ │ ├── cronjob_admin_role.yaml │ │ │ │ │ │ │ ├── cronjob_editor_role.yaml │ │ │ │ │ │ │ ├── cronjob_viewer_role.yaml │ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ │ ├── leader_election_role.yaml │ │ │ │ │ │ │ ├── leader_election_role_binding.yaml │ │ │ │ │ │ │ ├── metrics_auth_role.yaml │ │ │ │ │ │ │ ├── metrics_auth_role_binding.yaml │ │ │ │ │ │ │ ├── metrics_reader_role.yaml │ │ │ │ │ │ │ ├── role.yaml │ │ │ │ │ │ │ ├── role_binding.yaml │ │ │ │ │ │ │ └── service_account.yaml │ │ │ │ │ │ ├── samples/ │ │ │ │ │ │ │ ├── batch_v1_cronjob.yaml │ │ │ │ │ │ │ ├── batch_v2_cronjob.yaml │ │ │ │ │ │ │ └── kustomization.yaml │ │ │ │ │ │ └── webhook/ │ │ │ │ │ │ ├── kustomization.yaml │ │ │ │ │ │ ├── manifests.yaml │ │ │ │ │ │ └── service.yaml │ │ │ │ │ ├── dist/ │ │ │ │ │ │ ├── chart/ │ │ │ │ │ │ │ ├── .helmignore │ │ │ │ │ │ │ ├── Chart.yaml │ │ │ │ │ │ │ ├── templates/ │ │ │ │ │ │ │ │ ├── NOTES.txt │ │ │ │ │ │ │ │ ├── _helpers.tpl │ │ │ │ │ │ │ │ ├── cert-manager/ │ │ │ │ │ │ │ │ │ ├── metrics-certs.yaml │ │ │ │ │ │ │ │ │ ├── selfsigned-issuer.yaml │ │ │ │ │ │ │ │ │ └── serving-cert.yaml │ │ │ │ │ │ │ │ ├── crd/ │ │ │ │ │ │ │ │ │ └── cronjobs.batch.tutorial.kubebuilder.io.yaml │ │ │ │ │ │ │ │ ├── manager/ │ │ │ │ │ │ │ │ │ └── manager.yaml │ │ │ │ │ │ │ │ ├── metrics/ │ │ │ │ │ │ │ │ │ └── controller-manager-metrics-service.yaml │ │ │ │ │ │ │ │ ├── prometheus/ │ │ │ │ │ │ │ │ │ └── controller-manager-metrics-monitor.yaml │ │ │ │ │ │ │ │ ├── rbac/ │ │ │ │ │ │ │ │ │ ├── controller-manager.yaml │ │ │ │ │ │ │ │ │ ├── cronjob-admin-role.yaml │ │ │ │ │ │ │ │ │ ├── cronjob-editor-role.yaml │ │ │ │ │ │ │ │ │ ├── cronjob-viewer-role.yaml │ │ │ │ │ │ │ │ │ ├── leader-election-role.yaml │ │ │ │ │ │ │ │ │ ├── leader-election-rolebinding.yaml │ │ │ │ │ │ │ │ │ ├── manager-role.yaml │ │ │ │ │ │ │ │ │ ├── manager-rolebinding.yaml │ │ │ │ │ │ │ │ │ ├── metrics-auth-role.yaml │ │ │ │ │ │ │ │ │ ├── metrics-auth-rolebinding.yaml │ │ │ │ │ │ │ │ │ └── metrics-reader.yaml │ │ │ │ │ │ │ │ └── webhook/ │ │ │ │ │ │ │ │ ├── mutating-webhook-configuration.yaml │ │ │ │ │ │ │ │ ├── validating-webhook-configuration.yaml │ │ │ │ │ │ │ │ └── webhook-service.yaml │ │ │ │ │ │ │ └── values.yaml │ │ │ │ │ │ └── install.yaml │ │ │ │ │ ├── go.mod │ │ │ │ │ ├── go.sum │ │ │ │ │ ├── hack/ │ │ │ │ │ │ └── boilerplate.go.txt │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── cronjob_controller.go │ │ │ │ │ │ │ ├── cronjob_controller_test.go │ │ │ │ │ │ │ └── suite_test.go │ │ │ │ │ │ └── webhook/ │ │ │ │ │ │ ├── v1/ │ │ │ │ │ │ │ ├── cronjob_webhook.go │ │ │ │ │ │ │ ├── cronjob_webhook_test.go │ │ │ │ │ │ │ └── webhook_suite_test.go │ │ │ │ │ │ └── v2/ │ │ │ │ │ │ ├── cronjob_webhook.go │ │ │ │ │ │ ├── cronjob_webhook_test.go │ │ │ │ │ │ └── webhook_suite_test.go │ │ │ │ │ └── test/ │ │ │ │ │ ├── e2e/ │ │ │ │ │ │ ├── e2e_suite_test.go │ │ │ │ │ │ └── e2e_test.go │ │ │ │ │ └── utils/ │ │ │ │ │ └── utils.go │ │ │ │ ├── tutorial.md │ │ │ │ └── webhooks.md │ │ │ ├── plugins/ │ │ │ │ ├── available/ │ │ │ │ │ ├── autoupdate-v1-alpha.md │ │ │ │ │ ├── deploy-image-plugin-v1-alpha.md │ │ │ │ │ ├── go-v4-plugin.md │ │ │ │ │ ├── grafana-v1-alpha.md │ │ │ │ │ ├── helm-v1-alpha.md │ │ │ │ │ ├── helm-v2-alpha.md │ │ │ │ │ └── kustomize-v2.md │ │ │ │ ├── available-plugins.md │ │ │ │ ├── extending/ │ │ │ │ │ ├── custom-markers.md │ │ │ │ │ ├── extending_cli_features_and_plugins.md │ │ │ │ │ ├── external-plugins.md │ │ │ │ │ └── testing-plugins.md │ │ │ │ ├── extending.md │ │ │ │ ├── kustomize-v2.md │ │ │ │ ├── plugins-versioning.md │ │ │ │ ├── plugins.md │ │ │ │ ├── to-add-optional-features.md │ │ │ │ ├── to-be-extended.md │ │ │ │ └── to-scaffold-project.md │ │ │ ├── quick-start.md │ │ │ ├── reference/ │ │ │ │ ├── admission-webhook.md │ │ │ │ ├── alpha_commands.md │ │ │ │ ├── artifacts.md │ │ │ │ ├── commands/ │ │ │ │ │ ├── alpha_generate.md │ │ │ │ │ └── alpha_update.md │ │ │ │ ├── completion.md │ │ │ │ ├── controller-gen.md │ │ │ │ ├── crd-scope.md │ │ │ │ ├── envtest.md │ │ │ │ ├── generating-crd.md │ │ │ │ ├── good-practices.md │ │ │ │ ├── kind-config.yaml │ │ │ │ ├── kind.md │ │ │ │ ├── manager-scope.md │ │ │ │ ├── markers/ │ │ │ │ │ ├── crd-processing.md │ │ │ │ │ ├── crd-validation.md │ │ │ │ │ ├── crd.md │ │ │ │ │ ├── object.md │ │ │ │ │ ├── rbac.md │ │ │ │ │ ├── scaffold.md │ │ │ │ │ └── webhook.md │ │ │ │ ├── markers.md │ │ │ │ ├── metrics-reference.md │ │ │ │ ├── metrics.md │ │ │ │ ├── platform.md │ │ │ │ ├── pprof-tutorial.md │ │ │ │ ├── project-config.md │ │ │ │ ├── raising-events.md │ │ │ │ ├── reference.md │ │ │ │ ├── scopes.md │ │ │ │ ├── submodule-layouts.md │ │ │ │ ├── using-finalizers.md │ │ │ │ ├── using_an_external_resource.md │ │ │ │ ├── watching-resources/ │ │ │ │ │ ├── predicates-with-watch.md │ │ │ │ │ ├── secondary-owned-resources.md │ │ │ │ │ └── secondary-resources-not-owned.md │ │ │ │ ├── watching-resources.md │ │ │ │ ├── webhook-bootstrap-problem.md │ │ │ │ └── webhook-overview.md │ │ │ └── versions_compatibility_supportability.md │ │ ├── theme/ │ │ │ ├── css/ │ │ │ │ ├── custom.css │ │ │ │ ├── markers.css │ │ │ │ └── version-dropdown.css │ │ │ └── index.hbs │ │ └── utils/ │ │ ├── go.mod │ │ ├── go.sum │ │ ├── litgo/ │ │ │ └── literate.go │ │ ├── markerdocs/ │ │ │ ├── doctypes.go │ │ │ ├── html.go │ │ │ └── main.go │ │ └── plugin/ │ │ ├── input.go │ │ ├── plugin.go │ │ └── utils.go │ ├── kubebuilder_annotation.md │ ├── kubebuilder_v0_v1_difference.md │ ├── migration_guide.md │ ├── testing/ │ │ ├── e2e.md │ │ └── integration.md │ └── windows.md ├── go.mod ├── go.sum ├── hack/ │ ├── docs/ │ │ ├── check.sh │ │ ├── generate.sh │ │ ├── generate_samples.go │ │ └── internal/ │ │ ├── cronjob-tutorial/ │ │ │ ├── api_design.go │ │ │ ├── controller_implementation.go │ │ │ ├── e2e_implementation.go │ │ │ ├── generate_cronjob.go │ │ │ ├── main_revisited.go │ │ │ ├── other_api_files.go │ │ │ ├── sample.go │ │ │ ├── webhook_implementation.go │ │ │ ├── writing_tests_controller.go │ │ │ └── writing_tests_env.go │ │ ├── getting-started/ │ │ │ └── generate_getting_started.go │ │ ├── multiversion-tutorial/ │ │ │ ├── controller_tests_code.go │ │ │ ├── cronjob_v1.go │ │ │ ├── cronjob_v2.go │ │ │ ├── generate_multiversion.go │ │ │ ├── hub.go │ │ │ ├── samples.go │ │ │ └── webhook_v2_implementaton.go │ │ └── utils/ │ │ └── utils.go │ └── test/ │ └── check_go_module.go ├── internal/ │ ├── cli/ │ │ ├── alpha/ │ │ │ ├── generate.go │ │ │ ├── generate_test.go │ │ │ ├── internal/ │ │ │ │ ├── common/ │ │ │ │ │ ├── common.go │ │ │ │ │ ├── common_test.go │ │ │ │ │ └── suite_test.go │ │ │ │ ├── generate.go │ │ │ │ ├── generate_test.go │ │ │ │ ├── update/ │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ ├── conflict.go │ │ │ │ │ │ ├── conflict_test.go │ │ │ │ │ │ ├── download.go │ │ │ │ │ │ ├── download_test.go │ │ │ │ │ │ ├── git_commands.go │ │ │ │ │ │ ├── open_gh_issue.go │ │ │ │ │ │ ├── open_gh_issue_test.go │ │ │ │ │ │ └── suite_test.go │ │ │ │ │ ├── integration_test.go │ │ │ │ │ ├── prepare.go │ │ │ │ │ ├── prepare_test.go │ │ │ │ │ ├── suite_test.go │ │ │ │ │ ├── update.go │ │ │ │ │ ├── update_test.go │ │ │ │ │ ├── validate.go │ │ │ │ │ └── validate_test.go │ │ │ │ └── update.go │ │ │ ├── suite_test.go │ │ │ ├── update.go │ │ │ └── update_test.go │ │ ├── cmd/ │ │ │ └── cmd.go │ │ └── version/ │ │ ├── version.go │ │ └── version_test.go │ └── logging/ │ └── handler.go ├── main.go ├── netlify.toml ├── pkg/ │ ├── cli/ │ │ ├── alpha.go │ │ ├── api.go │ │ ├── cli.go │ │ ├── cli_test.go │ │ ├── cmd_helpers.go │ │ ├── cmd_helpers_test.go │ │ ├── completion.go │ │ ├── completion_test.go │ │ ├── create.go │ │ ├── doc.go │ │ ├── edit.go │ │ ├── init.go │ │ ├── init_test.go │ │ ├── options.go │ │ ├── options_test.go │ │ ├── resource.go │ │ ├── resource_test.go │ │ ├── root.go │ │ ├── suite_test.go │ │ ├── version.go │ │ ├── version_test.go │ │ ├── webhook.go │ │ └── webhook_test.go │ ├── config/ │ │ ├── errors.go │ │ ├── errors_test.go │ │ ├── interface.go │ │ ├── registry.go │ │ ├── registry_test.go │ │ ├── store/ │ │ │ ├── errors.go │ │ │ ├── errors_test.go │ │ │ ├── interface.go │ │ │ └── yaml/ │ │ │ ├── store.go │ │ │ └── store_test.go │ │ ├── suite_test.go │ │ ├── v3/ │ │ │ ├── config.go │ │ │ └── config_test.go │ │ ├── version.go │ │ └── version_test.go │ ├── machinery/ │ │ ├── errors.go │ │ ├── errors_test.go │ │ ├── file.go │ │ ├── filesystem.go │ │ ├── funcmap.go │ │ ├── funcmap_test.go │ │ ├── injector.go │ │ ├── injector_test.go │ │ ├── interfaces.go │ │ ├── machinery_suite_test.go │ │ ├── marker.go │ │ ├── marker_test.go │ │ ├── mixins.go │ │ ├── mixins_delim_test.go │ │ ├── mixins_test.go │ │ ├── scaffold.go │ │ └── scaffold_test.go │ ├── model/ │ │ ├── resource/ │ │ │ ├── api.go │ │ │ ├── api_test.go │ │ │ ├── gvk.go │ │ │ ├── gvk_test.go │ │ │ ├── resource.go │ │ │ ├── resource_test.go │ │ │ ├── suite_test.go │ │ │ ├── utils.go │ │ │ ├── utils_test.go │ │ │ ├── webhooks.go │ │ │ ├── webhooks_copy_test.go │ │ │ └── webhooks_test.go │ │ └── stage/ │ │ ├── stage.go │ │ └── stage_test.go │ ├── plugin/ │ │ ├── bundle.go │ │ ├── bundle_test.go │ │ ├── errors.go │ │ ├── errors_test.go │ │ ├── external/ │ │ │ └── types.go │ │ ├── filter.go │ │ ├── filter_test.go │ │ ├── helpers.go │ │ ├── helpers_test.go │ │ ├── metadata.go │ │ ├── plugin.go │ │ ├── subcommand.go │ │ ├── suite_test.go │ │ ├── util/ │ │ │ ├── exec.go │ │ │ ├── exec_test.go │ │ │ ├── stdin.go │ │ │ ├── stdin_test.go │ │ │ ├── suite_test.go │ │ │ ├── util.go │ │ │ └── util_test.go │ │ ├── version.go │ │ └── version_test.go │ └── plugins/ │ ├── common/ │ │ └── kustomize/ │ │ └── v2/ │ │ ├── api.go │ │ ├── create.go │ │ ├── create_test.go │ │ ├── init.go │ │ ├── init_test.go │ │ ├── plugin.go │ │ ├── plugin_test.go │ │ ├── scaffolds/ │ │ │ ├── api.go │ │ │ ├── edit.go │ │ │ ├── init.go │ │ │ ├── internal/ │ │ │ │ └── templates/ │ │ │ │ └── config/ │ │ │ │ ├── certmanager/ │ │ │ │ │ ├── certificate_metrics.go │ │ │ │ │ ├── certificate_webhook.go │ │ │ │ │ ├── issuer.go │ │ │ │ │ ├── kustomization.go │ │ │ │ │ └── kustomizeconfig.go │ │ │ │ ├── crd/ │ │ │ │ │ ├── kustomization.go │ │ │ │ │ ├── kustomizeconfig.go │ │ │ │ │ └── patches/ │ │ │ │ │ ├── enablecainjection_patch.go │ │ │ │ │ └── enablewebhook_patch.go │ │ │ │ ├── kdefault/ │ │ │ │ │ ├── cert_metrics_manager_patch.go │ │ │ │ │ ├── kustomization.go │ │ │ │ │ ├── kustomization_conversion_updater.go │ │ │ │ │ ├── manager_metrics_patch.go │ │ │ │ │ ├── metrics_service.go │ │ │ │ │ └── webhook_manager_patch.go │ │ │ │ ├── manager/ │ │ │ │ │ ├── config.go │ │ │ │ │ └── kustomization.go │ │ │ │ ├── network-policy/ │ │ │ │ │ ├── allow-metrics-traffic.go │ │ │ │ │ ├── allow-webhook-traffic.go │ │ │ │ │ └── kustomization.go │ │ │ │ ├── prometheus/ │ │ │ │ │ ├── kustomization.go │ │ │ │ │ ├── monitor.go │ │ │ │ │ └── monitor_tls_patch.go │ │ │ │ ├── rbac/ │ │ │ │ │ ├── cluster_role.go │ │ │ │ │ ├── cluster_role_binding.go │ │ │ │ │ ├── crd_admin_role.go │ │ │ │ │ ├── crd_editor_role.go │ │ │ │ │ ├── crd_viewer_role.go │ │ │ │ │ ├── kustomization.go │ │ │ │ │ ├── leader_election_role.go │ │ │ │ │ ├── leader_election_role_binding.go │ │ │ │ │ ├── metrics_auth_role.go │ │ │ │ │ ├── metrics_auth_role_binding.go │ │ │ │ │ ├── metrics_reader_role.go │ │ │ │ │ ├── namespaced_role.go │ │ │ │ │ ├── namespaced_role_binding.go │ │ │ │ │ └── service_account.go │ │ │ │ ├── samples/ │ │ │ │ │ ├── crd_sample.go │ │ │ │ │ └── kustomization.go │ │ │ │ └── webhook/ │ │ │ │ ├── kustomization.go │ │ │ │ └── service.go │ │ │ └── webhook.go │ │ ├── suite_test.go │ │ └── webhook.go │ ├── domain.go │ ├── external/ │ │ ├── api.go │ │ ├── edit.go │ │ ├── external_test.go │ │ ├── helpers.go │ │ ├── helpers_test.go │ │ ├── init.go │ │ ├── plugin.go │ │ └── webhook.go │ ├── golang/ │ │ ├── deploy-image/ │ │ │ └── v1alpha1/ │ │ │ ├── api.go │ │ │ ├── api_test.go │ │ │ ├── plugin.go │ │ │ ├── plugin_test.go │ │ │ ├── scaffolds/ │ │ │ │ ├── api.go │ │ │ │ └── internal/ │ │ │ │ └── templates/ │ │ │ │ ├── api/ │ │ │ │ │ └── types.go │ │ │ │ ├── config/ │ │ │ │ │ └── samples/ │ │ │ │ │ └── crd_sample.go │ │ │ │ └── controllers/ │ │ │ │ ├── controller-test.go │ │ │ │ └── controller.go │ │ │ └── suite_test.go │ │ ├── domain.go │ │ ├── go_version.go │ │ ├── go_version_test.go │ │ ├── options.go │ │ ├── options_test.go │ │ ├── repository.go │ │ ├── repository_test.go │ │ ├── suite_test.go │ │ └── v4/ │ │ ├── api.go │ │ ├── api_test.go │ │ ├── edit.go │ │ ├── edit_test.go │ │ ├── init.go │ │ ├── init_test.go │ │ ├── plugin.go │ │ ├── plugin_test.go │ │ ├── scaffolds/ │ │ │ ├── api.go │ │ │ ├── doc.go │ │ │ ├── edit.go │ │ │ ├── edit_integration_test.go │ │ │ ├── init.go │ │ │ ├── init_integration_test.go │ │ │ ├── internal/ │ │ │ │ └── templates/ │ │ │ │ ├── agents.go │ │ │ │ ├── api/ │ │ │ │ │ ├── group.go │ │ │ │ │ ├── hub.go │ │ │ │ │ ├── spoke.go │ │ │ │ │ ├── types.go │ │ │ │ │ └── types_updater.go │ │ │ │ ├── cmd/ │ │ │ │ │ └── main.go │ │ │ │ ├── controllers/ │ │ │ │ │ ├── controller.go │ │ │ │ │ ├── controller_suitetest.go │ │ │ │ │ └── controller_test_template.go │ │ │ │ ├── customgcl.go │ │ │ │ ├── devcontainer.go │ │ │ │ ├── dockerfile.go │ │ │ │ ├── dockerignore.go │ │ │ │ ├── github/ │ │ │ │ │ ├── lint.go │ │ │ │ │ ├── test-e2e.go │ │ │ │ │ └── test.go │ │ │ │ ├── gitignore.go │ │ │ │ ├── golangci.go │ │ │ │ ├── gomod.go │ │ │ │ ├── hack/ │ │ │ │ │ └── boilerplate.go │ │ │ │ ├── makefile.go │ │ │ │ ├── readme.go │ │ │ │ ├── test/ │ │ │ │ │ ├── e2e/ │ │ │ │ │ │ ├── suite.go │ │ │ │ │ │ └── test.go │ │ │ │ │ └── utils/ │ │ │ │ │ └── utils.go │ │ │ │ └── webhooks/ │ │ │ │ ├── webhook.go │ │ │ │ ├── webhook_suitetest.go │ │ │ │ ├── webhook_test_template.go │ │ │ │ ├── webhook_test_updater.go │ │ │ │ └── webhook_updater.go │ │ │ ├── suite_test.go │ │ │ ├── webhook.go │ │ │ └── webhook_test.go │ │ ├── suite_test.go │ │ ├── webhook.go │ │ └── webhook_test.go │ ├── optional/ │ │ ├── autoupdate/ │ │ │ └── v1alpha/ │ │ │ ├── edit.go │ │ │ ├── edit_test.go │ │ │ ├── init.go │ │ │ ├── plugin.go │ │ │ ├── plugin_test.go │ │ │ ├── scaffolds/ │ │ │ │ ├── init.go │ │ │ │ └── internal/ │ │ │ │ └── github/ │ │ │ │ └── auto_update.go │ │ │ └── suite_test.go │ │ ├── grafana/ │ │ │ └── v1alpha/ │ │ │ ├── commons.go │ │ │ ├── constants.go │ │ │ ├── edit.go │ │ │ ├── init.go │ │ │ ├── plugin.go │ │ │ └── scaffolds/ │ │ │ ├── edit.go │ │ │ ├── edit_test.go │ │ │ ├── init.go │ │ │ ├── init_test.go │ │ │ ├── internal/ │ │ │ │ └── templates/ │ │ │ │ ├── custom.go │ │ │ │ ├── custom_metrics.go │ │ │ │ ├── resources.go │ │ │ │ └── runtime.go │ │ │ ├── scaffolds_test.go │ │ │ └── suite_test.go │ │ └── helm/ │ │ ├── v1alpha/ │ │ │ ├── commons.go │ │ │ ├── edit.go │ │ │ ├── plugin.go │ │ │ └── scaffolds/ │ │ │ ├── edit.go │ │ │ └── internal/ │ │ │ └── templates/ │ │ │ ├── chart-templates/ │ │ │ │ ├── cert-manager/ │ │ │ │ │ └── certificate.go │ │ │ │ ├── helpers_tpl.go │ │ │ │ ├── manager/ │ │ │ │ │ └── manager.go │ │ │ │ ├── metrics/ │ │ │ │ │ └── metrics_service.go │ │ │ │ ├── prometheus/ │ │ │ │ │ └── monitor.go │ │ │ │ └── webhook/ │ │ │ │ ├── service.go │ │ │ │ └── webhook.go │ │ │ ├── chart.go │ │ │ ├── github/ │ │ │ │ └── test_chart.go │ │ │ ├── helmignore.go │ │ │ └── values.go │ │ └── v2alpha/ │ │ ├── edit.go │ │ ├── edit_test.go │ │ ├── makefile_test.go │ │ ├── plugin.go │ │ ├── plugin_test.go │ │ ├── scaffolds/ │ │ │ ├── chart_generation_integration_test.go │ │ │ ├── chart_never_overwrite_test.go │ │ │ ├── edit_kustomize.go │ │ │ ├── extras_integration_test.go │ │ │ ├── force_integration_test.go │ │ │ ├── internal/ │ │ │ │ ├── kustomize/ │ │ │ │ │ ├── chart_converter.go │ │ │ │ │ ├── chart_converter_test.go │ │ │ │ │ ├── chart_writer.go │ │ │ │ │ ├── helm_templater.go │ │ │ │ │ ├── helm_templater_test.go │ │ │ │ │ ├── parser.go │ │ │ │ │ ├── parser_test.go │ │ │ │ │ ├── resource_organizer.go │ │ │ │ │ └── suite_test.go │ │ │ │ └── templates/ │ │ │ │ ├── chart-templates/ │ │ │ │ │ ├── consts.go │ │ │ │ │ ├── helpers_tpl.go │ │ │ │ │ ├── notes.go │ │ │ │ │ ├── notes_test.go │ │ │ │ │ ├── servicemonitor.go │ │ │ │ │ └── suite_test.go │ │ │ │ ├── chart.go │ │ │ │ ├── github/ │ │ │ │ │ └── test_chart.go │ │ │ │ ├── helmignore.go │ │ │ │ ├── suite_test.go │ │ │ │ ├── values_basic.go │ │ │ │ └── values_basic_test.go │ │ │ └── suite_test.go │ │ └── suite_test.go │ └── scaffolder.go ├── roadmap/ │ ├── README.md │ ├── roadmap_2024.md │ ├── roadmap_2025.md │ └── roadmap_2026.md ├── test/ │ ├── check-docs-only.sh │ ├── check-license.sh │ ├── check_spaces.sh │ ├── common.sh │ ├── e2e/ │ │ ├── all/ │ │ │ ├── e2e_suite_test.go │ │ │ ├── plugin_deployimage_test.go │ │ │ ├── plugin_helm_test.go │ │ │ └── plugin_v4_test.go │ │ ├── ci.sh │ │ ├── internal/ │ │ │ └── helpers/ │ │ │ ├── generate_v4.go │ │ │ ├── plugin_test_helper.go │ │ │ └── plugin_test_metrics.go │ │ ├── kind-config.yaml │ │ ├── local.sh │ │ ├── setup.sh │ │ └── utils/ │ │ ├── kubectl.go │ │ ├── kubectl_test.go │ │ ├── suite_test.go │ │ ├── test_context.go │ │ └── webhooks.go │ └── testdata/ │ ├── check.sh │ ├── generate.sh │ ├── legacy-webhook-path.sh │ ├── test.sh │ └── test_legacy.sh ├── test.sh ├── test_e2e.sh └── testdata/ ├── project-v4/ │ ├── .custom-gcl.yml │ ├── .devcontainer/ │ │ ├── devcontainer.json │ │ └── post-install.sh │ ├── .dockerignore │ ├── .github/ │ │ └── workflows/ │ │ ├── lint.yml │ │ ├── test-e2e.yml │ │ └── test.yml │ ├── .gitignore │ ├── .golangci.yml │ ├── AGENTS.md │ ├── Dockerfile │ ├── Makefile │ ├── PROJECT │ ├── README.md │ ├── api/ │ │ ├── v1/ │ │ │ ├── admiral_types.go │ │ │ ├── captain_types.go │ │ │ ├── firstmate_conversion.go │ │ │ ├── firstmate_types.go │ │ │ ├── groupversion_info.go │ │ │ ├── sailor_types.go │ │ │ └── zz_generated.deepcopy.go │ │ └── v2/ │ │ ├── firstmate_conversion.go │ │ ├── firstmate_types.go │ │ ├── groupversion_info.go │ │ └── zz_generated.deepcopy.go │ ├── cmd/ │ │ └── main.go │ ├── config/ │ │ ├── certmanager/ │ │ │ ├── certificate-metrics.yaml │ │ │ ├── certificate-webhook.yaml │ │ │ ├── issuer.yaml │ │ │ ├── kustomization.yaml │ │ │ └── kustomizeconfig.yaml │ │ ├── crd/ │ │ │ ├── bases/ │ │ │ │ ├── crew.testproject.org_admirales.yaml │ │ │ │ ├── crew.testproject.org_captains.yaml │ │ │ │ ├── crew.testproject.org_firstmates.yaml │ │ │ │ └── crew.testproject.org_sailors.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── kustomizeconfig.yaml │ │ │ └── patches/ │ │ │ └── webhook_in_firstmates.yaml │ │ ├── default/ │ │ │ ├── cert_metrics_manager_patch.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── manager_metrics_patch.yaml │ │ │ ├── manager_webhook_patch.yaml │ │ │ └── metrics_service.yaml │ │ ├── manager/ │ │ │ ├── kustomization.yaml │ │ │ └── manager.yaml │ │ ├── network-policy/ │ │ │ ├── allow-metrics-traffic.yaml │ │ │ ├── allow-webhook-traffic.yaml │ │ │ └── kustomization.yaml │ │ ├── prometheus/ │ │ │ ├── kustomization.yaml │ │ │ ├── monitor.yaml │ │ │ └── monitor_tls_patch.yaml │ │ ├── rbac/ │ │ │ ├── admiral_admin_role.yaml │ │ │ ├── admiral_editor_role.yaml │ │ │ ├── admiral_viewer_role.yaml │ │ │ ├── captain_admin_role.yaml │ │ │ ├── captain_editor_role.yaml │ │ │ ├── captain_viewer_role.yaml │ │ │ ├── firstmate_admin_role.yaml │ │ │ ├── firstmate_editor_role.yaml │ │ │ ├── firstmate_viewer_role.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── leader_election_role.yaml │ │ │ ├── leader_election_role_binding.yaml │ │ │ ├── metrics_auth_role.yaml │ │ │ ├── metrics_auth_role_binding.yaml │ │ │ ├── metrics_reader_role.yaml │ │ │ ├── role.yaml │ │ │ ├── role_binding.yaml │ │ │ ├── sailor_admin_role.yaml │ │ │ ├── sailor_editor_role.yaml │ │ │ ├── sailor_viewer_role.yaml │ │ │ └── service_account.yaml │ │ ├── samples/ │ │ │ ├── crew_v1_admiral.yaml │ │ │ ├── crew_v1_captain.yaml │ │ │ ├── crew_v1_firstmate.yaml │ │ │ ├── crew_v1_sailor.yaml │ │ │ ├── crew_v2_firstmate.yaml │ │ │ └── kustomization.yaml │ │ └── webhook/ │ │ ├── kustomization.yaml │ │ ├── manifests.yaml │ │ └── service.yaml │ ├── dist/ │ │ └── install.yaml │ ├── go.mod │ ├── hack/ │ │ └── boilerplate.go.txt │ ├── internal/ │ │ ├── controller/ │ │ │ ├── admiral_controller.go │ │ │ ├── admiral_controller_test.go │ │ │ ├── captain_controller.go │ │ │ ├── captain_controller_test.go │ │ │ ├── certificate_controller.go │ │ │ ├── certificate_controller_test.go │ │ │ ├── firstmate_controller.go │ │ │ ├── firstmate_controller_test.go │ │ │ ├── sailor_controller.go │ │ │ ├── sailor_controller_test.go │ │ │ └── suite_test.go │ │ └── webhook/ │ │ └── v1/ │ │ ├── admiral_webhook.go │ │ ├── admiral_webhook_test.go │ │ ├── captain_webhook.go │ │ ├── captain_webhook_test.go │ │ ├── deployment_webhook.go │ │ ├── deployment_webhook_test.go │ │ ├── firstmate_webhook.go │ │ ├── firstmate_webhook_test.go │ │ ├── issuer_webhook.go │ │ ├── issuer_webhook_test.go │ │ ├── pod_webhook.go │ │ ├── pod_webhook_test.go │ │ ├── sailor_webhook.go │ │ ├── sailor_webhook_test.go │ │ └── webhook_suite_test.go │ └── test/ │ ├── e2e/ │ │ ├── e2e_suite_test.go │ │ └── e2e_test.go │ └── utils/ │ └── utils.go ├── project-v4-multigroup/ │ ├── .custom-gcl.yml │ ├── .devcontainer/ │ │ ├── devcontainer.json │ │ └── post-install.sh │ ├── .dockerignore │ ├── .github/ │ │ └── workflows/ │ │ ├── lint.yml │ │ ├── test-e2e.yml │ │ └── test.yml │ ├── .gitignore │ ├── .golangci.yml │ ├── AGENTS.md │ ├── Dockerfile │ ├── Makefile │ ├── PROJECT │ ├── README.md │ ├── api/ │ │ ├── crew/ │ │ │ └── v1/ │ │ │ ├── captain_types.go │ │ │ ├── groupversion_info.go │ │ │ └── zz_generated.deepcopy.go │ │ ├── example.com/ │ │ │ ├── v1/ │ │ │ │ ├── groupversion_info.go │ │ │ │ ├── wordpress_conversion.go │ │ │ │ ├── wordpress_types.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── v1alpha1/ │ │ │ │ ├── busybox_types.go │ │ │ │ ├── groupversion_info.go │ │ │ │ ├── memcached_types.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ └── v2/ │ │ │ ├── groupversion_info.go │ │ │ ├── wordpress_conversion.go │ │ │ ├── wordpress_types.go │ │ │ └── zz_generated.deepcopy.go │ │ ├── fiz/ │ │ │ └── v1/ │ │ │ ├── bar_types.go │ │ │ ├── groupversion_info.go │ │ │ └── zz_generated.deepcopy.go │ │ ├── foo/ │ │ │ └── v1/ │ │ │ ├── bar_types.go │ │ │ ├── groupversion_info.go │ │ │ └── zz_generated.deepcopy.go │ │ ├── foo.policy/ │ │ │ └── v1/ │ │ │ ├── groupversion_info.go │ │ │ ├── healthcheckpolicy_types.go │ │ │ └── zz_generated.deepcopy.go │ │ ├── sea-creatures/ │ │ │ ├── v1beta1/ │ │ │ │ ├── groupversion_info.go │ │ │ │ ├── kraken_types.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ └── v1beta2/ │ │ │ ├── groupversion_info.go │ │ │ ├── leviathan_types.go │ │ │ └── zz_generated.deepcopy.go │ │ └── ship/ │ │ ├── v1/ │ │ │ ├── destroyer_types.go │ │ │ ├── groupversion_info.go │ │ │ └── zz_generated.deepcopy.go │ │ ├── v1beta1/ │ │ │ ├── frigate_types.go │ │ │ ├── groupversion_info.go │ │ │ └── zz_generated.deepcopy.go │ │ └── v2alpha1/ │ │ ├── cruiser_types.go │ │ ├── groupversion_info.go │ │ └── zz_generated.deepcopy.go │ ├── cmd/ │ │ └── main.go │ ├── config/ │ │ ├── certmanager/ │ │ │ ├── certificate-metrics.yaml │ │ │ ├── certificate-webhook.yaml │ │ │ ├── issuer.yaml │ │ │ ├── kustomization.yaml │ │ │ └── kustomizeconfig.yaml │ │ ├── crd/ │ │ │ ├── bases/ │ │ │ │ ├── crew.testproject.org_captains.yaml │ │ │ │ ├── example.com.testproject.org_busyboxes.yaml │ │ │ │ ├── example.com.testproject.org_memcacheds.yaml │ │ │ │ ├── example.com.testproject.org_wordpresses.yaml │ │ │ │ ├── fiz.testproject.org_bars.yaml │ │ │ │ ├── foo.policy.testproject.org_healthcheckpolicies.yaml │ │ │ │ ├── foo.testproject.org_bars.yaml │ │ │ │ ├── sea-creatures.testproject.org_krakens.yaml │ │ │ │ ├── sea-creatures.testproject.org_leviathans.yaml │ │ │ │ ├── ship.testproject.org_cruisers.yaml │ │ │ │ ├── ship.testproject.org_destroyers.yaml │ │ │ │ └── ship.testproject.org_frigates.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── kustomizeconfig.yaml │ │ │ └── patches/ │ │ │ └── webhook_in_example.com_wordpresses.yaml │ │ ├── default/ │ │ │ ├── cert_metrics_manager_patch.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── manager_metrics_patch.yaml │ │ │ ├── manager_webhook_patch.yaml │ │ │ └── metrics_service.yaml │ │ ├── manager/ │ │ │ ├── kustomization.yaml │ │ │ └── manager.yaml │ │ ├── network-policy/ │ │ │ ├── allow-metrics-traffic.yaml │ │ │ ├── allow-webhook-traffic.yaml │ │ │ └── kustomization.yaml │ │ ├── prometheus/ │ │ │ ├── kustomization.yaml │ │ │ ├── monitor.yaml │ │ │ └── monitor_tls_patch.yaml │ │ ├── rbac/ │ │ │ ├── crew_captain_admin_role.yaml │ │ │ ├── crew_captain_editor_role.yaml │ │ │ ├── crew_captain_viewer_role.yaml │ │ │ ├── example.com_busybox_admin_role.yaml │ │ │ ├── example.com_busybox_editor_role.yaml │ │ │ ├── example.com_busybox_viewer_role.yaml │ │ │ ├── example.com_memcached_admin_role.yaml │ │ │ ├── example.com_memcached_editor_role.yaml │ │ │ ├── example.com_memcached_viewer_role.yaml │ │ │ ├── example.com_wordpress_admin_role.yaml │ │ │ ├── example.com_wordpress_editor_role.yaml │ │ │ ├── example.com_wordpress_viewer_role.yaml │ │ │ ├── fiz_bar_admin_role.yaml │ │ │ ├── fiz_bar_editor_role.yaml │ │ │ ├── fiz_bar_viewer_role.yaml │ │ │ ├── foo.policy_healthcheckpolicy_admin_role.yaml │ │ │ ├── foo.policy_healthcheckpolicy_editor_role.yaml │ │ │ ├── foo.policy_healthcheckpolicy_viewer_role.yaml │ │ │ ├── foo_bar_admin_role.yaml │ │ │ ├── foo_bar_editor_role.yaml │ │ │ ├── foo_bar_viewer_role.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── leader_election_role.yaml │ │ │ ├── leader_election_role_binding.yaml │ │ │ ├── metrics_auth_role.yaml │ │ │ ├── metrics_auth_role_binding.yaml │ │ │ ├── metrics_reader_role.yaml │ │ │ ├── role.yaml │ │ │ ├── role_binding.yaml │ │ │ ├── sea-creatures_kraken_admin_role.yaml │ │ │ ├── sea-creatures_kraken_editor_role.yaml │ │ │ ├── sea-creatures_kraken_viewer_role.yaml │ │ │ ├── sea-creatures_leviathan_admin_role.yaml │ │ │ ├── sea-creatures_leviathan_editor_role.yaml │ │ │ ├── sea-creatures_leviathan_viewer_role.yaml │ │ │ ├── service_account.yaml │ │ │ ├── ship_cruiser_admin_role.yaml │ │ │ ├── ship_cruiser_editor_role.yaml │ │ │ ├── ship_cruiser_viewer_role.yaml │ │ │ ├── ship_destroyer_admin_role.yaml │ │ │ ├── ship_destroyer_editor_role.yaml │ │ │ ├── ship_destroyer_viewer_role.yaml │ │ │ ├── ship_frigate_admin_role.yaml │ │ │ ├── ship_frigate_editor_role.yaml │ │ │ └── ship_frigate_viewer_role.yaml │ │ ├── samples/ │ │ │ ├── crew_v1_captain.yaml │ │ │ ├── example.com_v1_wordpress.yaml │ │ │ ├── example.com_v1alpha1_busybox.yaml │ │ │ ├── example.com_v1alpha1_memcached.yaml │ │ │ ├── example.com_v2_wordpress.yaml │ │ │ ├── fiz_v1_bar.yaml │ │ │ ├── foo.policy_v1_healthcheckpolicy.yaml │ │ │ ├── foo_v1_bar.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── sea-creatures_v1beta1_kraken.yaml │ │ │ ├── sea-creatures_v1beta2_leviathan.yaml │ │ │ ├── ship_v1_destroyer.yaml │ │ │ ├── ship_v1beta1_frigate.yaml │ │ │ └── ship_v2alpha1_cruiser.yaml │ │ └── webhook/ │ │ ├── kustomization.yaml │ │ ├── manifests.yaml │ │ └── service.yaml │ ├── dist/ │ │ └── install.yaml │ ├── go.mod │ ├── grafana/ │ │ ├── controller-resources-metrics.json │ │ ├── controller-runtime-metrics.json │ │ └── custom-metrics/ │ │ └── config.yaml │ ├── hack/ │ │ └── boilerplate.go.txt │ ├── internal/ │ │ ├── controller/ │ │ │ ├── apps/ │ │ │ │ ├── deployment_controller.go │ │ │ │ ├── deployment_controller_test.go │ │ │ │ └── suite_test.go │ │ │ ├── cert-manager/ │ │ │ │ ├── certificate_controller.go │ │ │ │ ├── certificate_controller_test.go │ │ │ │ └── suite_test.go │ │ │ ├── crew/ │ │ │ │ ├── captain_controller.go │ │ │ │ ├── captain_controller_test.go │ │ │ │ └── suite_test.go │ │ │ ├── example.com/ │ │ │ │ ├── busybox_controller.go │ │ │ │ ├── busybox_controller_test.go │ │ │ │ ├── memcached_controller.go │ │ │ │ ├── memcached_controller_test.go │ │ │ │ ├── suite_test.go │ │ │ │ ├── wordpress_controller.go │ │ │ │ └── wordpress_controller_test.go │ │ │ ├── fiz/ │ │ │ │ ├── bar_controller.go │ │ │ │ ├── bar_controller_test.go │ │ │ │ └── suite_test.go │ │ │ ├── foo/ │ │ │ │ ├── bar_controller.go │ │ │ │ ├── bar_controller_test.go │ │ │ │ └── suite_test.go │ │ │ ├── foo.policy/ │ │ │ │ ├── healthcheckpolicy_controller.go │ │ │ │ ├── healthcheckpolicy_controller_test.go │ │ │ │ └── suite_test.go │ │ │ ├── sea-creatures/ │ │ │ │ ├── kraken_controller.go │ │ │ │ ├── kraken_controller_test.go │ │ │ │ ├── leviathan_controller.go │ │ │ │ ├── leviathan_controller_test.go │ │ │ │ └── suite_test.go │ │ │ └── ship/ │ │ │ ├── cruiser_controller.go │ │ │ ├── cruiser_controller_test.go │ │ │ ├── destroyer_controller.go │ │ │ ├── destroyer_controller_test.go │ │ │ ├── frigate_controller.go │ │ │ ├── frigate_controller_test.go │ │ │ └── suite_test.go │ │ └── webhook/ │ │ ├── apps/ │ │ │ └── v1/ │ │ │ ├── deployment_webhook.go │ │ │ ├── deployment_webhook_test.go │ │ │ └── webhook_suite_test.go │ │ ├── cert-manager/ │ │ │ └── v1/ │ │ │ ├── issuer_webhook.go │ │ │ ├── issuer_webhook_test.go │ │ │ └── webhook_suite_test.go │ │ ├── core/ │ │ │ └── v1/ │ │ │ ├── pod_webhook.go │ │ │ ├── pod_webhook_test.go │ │ │ └── webhook_suite_test.go │ │ ├── crew/ │ │ │ └── v1/ │ │ │ ├── captain_webhook.go │ │ │ ├── captain_webhook_test.go │ │ │ └── webhook_suite_test.go │ │ ├── example.com/ │ │ │ ├── v1/ │ │ │ │ ├── webhook_suite_test.go │ │ │ │ ├── wordpress_webhook.go │ │ │ │ └── wordpress_webhook_test.go │ │ │ └── v1alpha1/ │ │ │ ├── memcached_webhook.go │ │ │ ├── memcached_webhook_test.go │ │ │ └── webhook_suite_test.go │ │ └── ship/ │ │ ├── v1/ │ │ │ ├── destroyer_webhook.go │ │ │ ├── destroyer_webhook_test.go │ │ │ └── webhook_suite_test.go │ │ └── v2alpha1/ │ │ ├── cruiser_webhook.go │ │ ├── cruiser_webhook_test.go │ │ └── webhook_suite_test.go │ └── test/ │ ├── e2e/ │ │ ├── e2e_suite_test.go │ │ └── e2e_test.go │ └── utils/ │ └── utils.go └── project-v4-with-plugins/ ├── .custom-gcl.yml ├── .devcontainer/ │ ├── devcontainer.json │ └── post-install.sh ├── .dockerignore ├── .github/ │ └── workflows/ │ ├── auto_update.yml │ ├── lint.yml │ ├── test-chart.yml │ ├── test-e2e.yml │ └── test.yml ├── .gitignore ├── .golangci.yml ├── AGENTS.md ├── Dockerfile ├── Makefile ├── PROJECT ├── README.md ├── api/ │ ├── v1/ │ │ ├── groupversion_info.go │ │ ├── wordpress_conversion.go │ │ ├── wordpress_types.go │ │ └── zz_generated.deepcopy.go │ ├── v1alpha1/ │ │ ├── busybox_types.go │ │ ├── groupversion_info.go │ │ ├── memcached_types.go │ │ └── zz_generated.deepcopy.go │ └── v2/ │ ├── groupversion_info.go │ ├── wordpress_conversion.go │ ├── wordpress_types.go │ └── zz_generated.deepcopy.go ├── cmd/ │ └── main.go ├── config/ │ ├── certmanager/ │ │ ├── certificate-metrics.yaml │ │ ├── certificate-webhook.yaml │ │ ├── issuer.yaml │ │ ├── kustomization.yaml │ │ └── kustomizeconfig.yaml │ ├── crd/ │ │ ├── bases/ │ │ │ ├── example.com.testproject.org_busyboxes.yaml │ │ │ ├── example.com.testproject.org_memcacheds.yaml │ │ │ └── example.com.testproject.org_wordpresses.yaml │ │ ├── kustomization.yaml │ │ ├── kustomizeconfig.yaml │ │ └── patches/ │ │ └── webhook_in_wordpresses.yaml │ ├── default/ │ │ ├── cert_metrics_manager_patch.yaml │ │ ├── kustomization.yaml │ │ ├── manager_metrics_patch.yaml │ │ ├── manager_webhook_patch.yaml │ │ └── metrics_service.yaml │ ├── manager/ │ │ ├── kustomization.yaml │ │ └── manager.yaml │ ├── network-policy/ │ │ ├── allow-metrics-traffic.yaml │ │ ├── allow-webhook-traffic.yaml │ │ └── kustomization.yaml │ ├── prometheus/ │ │ ├── kustomization.yaml │ │ ├── monitor.yaml │ │ └── monitor_tls_patch.yaml │ ├── rbac/ │ │ ├── busybox_admin_role.yaml │ │ ├── busybox_editor_role.yaml │ │ ├── busybox_viewer_role.yaml │ │ ├── kustomization.yaml │ │ ├── leader_election_role.yaml │ │ ├── leader_election_role_binding.yaml │ │ ├── memcached_admin_role.yaml │ │ ├── memcached_editor_role.yaml │ │ ├── memcached_viewer_role.yaml │ │ ├── metrics_auth_role.yaml │ │ ├── metrics_auth_role_binding.yaml │ │ ├── metrics_reader_role.yaml │ │ ├── role.yaml │ │ ├── role_binding.yaml │ │ ├── service_account.yaml │ │ ├── wordpress_admin_role.yaml │ │ ├── wordpress_editor_role.yaml │ │ └── wordpress_viewer_role.yaml │ ├── samples/ │ │ ├── example.com_v1_wordpress.yaml │ │ ├── example.com_v1alpha1_busybox.yaml │ │ ├── example.com_v1alpha1_memcached.yaml │ │ ├── example.com_v2_wordpress.yaml │ │ └── kustomization.yaml │ └── webhook/ │ ├── kustomization.yaml │ ├── manifests.yaml │ └── service.yaml ├── dist/ │ ├── chart/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── templates/ │ │ │ ├── NOTES.txt │ │ │ ├── _helpers.tpl │ │ │ ├── cert-manager/ │ │ │ │ ├── metrics-certs.yaml │ │ │ │ ├── selfsigned-issuer.yaml │ │ │ │ └── serving-cert.yaml │ │ │ ├── crd/ │ │ │ │ ├── busyboxes.example.com.testproject.org.yaml │ │ │ │ ├── memcacheds.example.com.testproject.org.yaml │ │ │ │ └── wordpresses.example.com.testproject.org.yaml │ │ │ ├── manager/ │ │ │ │ └── manager.yaml │ │ │ ├── metrics/ │ │ │ │ └── controller-manager-metrics-service.yaml │ │ │ ├── monitoring/ │ │ │ │ └── servicemonitor.yaml │ │ │ ├── rbac/ │ │ │ │ ├── busybox-admin-role.yaml │ │ │ │ ├── busybox-editor-role.yaml │ │ │ │ ├── busybox-viewer-role.yaml │ │ │ │ ├── controller-manager.yaml │ │ │ │ ├── leader-election-role.yaml │ │ │ │ ├── leader-election-rolebinding.yaml │ │ │ │ ├── manager-role.yaml │ │ │ │ ├── manager-rolebinding.yaml │ │ │ │ ├── memcached-admin-role.yaml │ │ │ │ ├── memcached-editor-role.yaml │ │ │ │ ├── memcached-viewer-role.yaml │ │ │ │ ├── metrics-auth-role.yaml │ │ │ │ ├── metrics-auth-rolebinding.yaml │ │ │ │ ├── metrics-reader.yaml │ │ │ │ ├── wordpress-admin-role.yaml │ │ │ │ ├── wordpress-editor-role.yaml │ │ │ │ └── wordpress-viewer-role.yaml │ │ │ └── webhook/ │ │ │ ├── validating-webhook-configuration.yaml │ │ │ └── webhook-service.yaml │ │ └── values.yaml │ └── install.yaml ├── go.mod ├── grafana/ │ ├── controller-resources-metrics.json │ ├── controller-runtime-metrics.json │ └── custom-metrics/ │ └── config.yaml ├── hack/ │ └── boilerplate.go.txt ├── internal/ │ ├── controller/ │ │ ├── busybox_controller.go │ │ ├── busybox_controller_test.go │ │ ├── memcached_controller.go │ │ ├── memcached_controller_test.go │ │ ├── suite_test.go │ │ ├── wordpress_controller.go │ │ └── wordpress_controller_test.go │ └── webhook/ │ ├── v1/ │ │ ├── webhook_suite_test.go │ │ ├── wordpress_webhook.go │ │ └── wordpress_webhook_test.go │ └── v1alpha1/ │ ├── memcached_webhook.go │ ├── memcached_webhook_test.go │ └── webhook_suite_test.go └── test/ ├── e2e/ │ ├── e2e_suite_test.go │ └── e2e_test.go └── utils/ └── utils.go