From 33fc133bcd8ed2b72bb1f1a343773fbc74995ce8 Mon Sep 17 00:00:00 2001 From: Nicolas Bigler Date: Wed, 4 Oct 2023 13:30:37 +0200 Subject: [PATCH] Refactor component and add appcat package Signed-off-by: Nicolas Bigler --- .editorconfig | 12 +- .github/workflows/component-test.yaml | 65 + .github/workflows/package-test.yaml | 51 + .github/workflows/release.yaml | 11 + .github/workflows/test.yaml | 64 +- .gitignore | 29 +- Makefile | 73 +- Makefile.vars.mk | 31 +- .cruft.json => component/.cruft.json | 0 component/.github/workflows/test.yaml | 73 + .yamllint.yml => component/.yamllint.yml | 0 component/Makefile | 86 ++ component/Makefile.vars.mk | 49 + {class => component/class}/appcat.yml | 4 +- {class => component/class}/defaults.yml | 0 component/{ => component}/app.jsonnet | 0 .../{ => component}/appcat_apiserver.jsonnet | 0 .../{ => component}/appcat_controller.jsonnet | 0 .../appcat_sla_reporter.jsonnet | 0 .../appcat_sli_exporter.jsonnet | 0 component/{ => component}/common.libsonnet | 0 .../exoscale-plans/grafana.json | 0 .../{ => component}/exoscale-plans/kafka.json | 0 .../{ => component}/exoscale-plans/mysql.json | 0 .../exoscale-plans/opensearch.json | 0 .../{ => component}/exoscale-plans/pg.json | 0 .../{ => component}/exoscale-plans/redis.json | 0 .../{ => component}/exoscale_kafka.jsonnet | 0 .../{ => component}/exoscale_mysql.jsonnet | 0 .../exoscale_opensearch.jsonnet | 0 .../{ => component}/exoscale_postgres.jsonnet | 0 .../{ => component}/exoscale_redis.jsonnet | 0 component/{ => component}/main.jsonnet | 0 .../{ => component}/objectstorage.jsonnet | 0 .../{ => component}/promql/appcat.promql | 0 component/{ => component}/provider.jsonnet | 0 .../{ => component}/scripts/copy-pg-backup.sh | 0 .../{ => component}/scripts/pg-maintenance.sh | 0 component/{ => component}/slos.libsonnet | 0 component/{ => component}/sloth-input.jsonnet | 0 .../statefuleset-resize-controller.jsonnet | 0 component/{ => component}/vshn_minio.jsonnet | 0 .../{ => component}/vshn_postgres.jsonnet | 0 component/{ => component}/vshn_redis.jsonnet | 0 .../{ => component}/vshn_services.jsonnet | 0 component/{ => component}/xrds.libsonnet | 0 .../lib}/appcat-compositions.libsonnet | 0 run-sloth => component/run-sloth | 0 {tests => component/tests}/apiserver.yml | 0 {tests => component/tests}/cloudscale.yml | 0 {tests => component/tests}/controllers.yml | 0 {tests => component/tests}/defaults.yml | 0 {tests => component/tests}/exoscale.yml | 0 .../10_appcat_billing_recording_rule.yaml | 0 .../10_appcat_maintenance_recording_rule.yaml | 0 .../appcat/appcat/10_appcat_namespace.yaml | 0 .../appcat/10_clusterrole_finalizer.yaml | 0 .../appcat/10_clusterrole_services_read.yaml | 0 .../appcat/appcat/10_clusterrole_view.yaml | 0 .../appcat/apiserver/10_apiserver_envs.yaml | 0 .../apiserver/10_cluster_role_api_server.yaml | 0 .../10_cluster_role_basic_users.yaml | 0 .../apiserver/10_cluster_role_binding.yaml | 0 .../apiserver/10_cluster_role_view.yaml | 0 .../appcat/apiserver/20_service_account.yaml | 0 .../appcat/apiserver/30_api_service.yaml | 0 .../appcat/apiserver/30_deployment.yaml | 0 .../appcat/appcat/apiserver/30_service.yaml | 0 .../appcat/apiserver/31_api_certificate.yaml | 0 .../appcat/apiserver/31_api_issuer.yaml | 0 .../statefuleset-resize-controller.yaml | 0 .../golden/apiserver/appcat/apps/appcat.yaml | 0 .../10_appcat_billing_recording_rule.yaml | 0 .../10_appcat_maintenance_recording_rule.yaml | 0 .../appcat/appcat/10_appcat_namespace.yaml | 0 .../appcat/10_clusterrole_services_read.yaml | 0 .../appcat/appcat/10_clusterrole_view.yaml | 0 .../appcat/appcat/10_provider_cloudscale.yaml | 0 .../appcat/appcat/10_provider_kubernetes.yaml | 0 .../appcat/appcat/20_rbac_objectstorage.yaml | 0 .../appcat/appcat/20_xrd_objectstorage.yaml | 0 ..._composition_objectstorage_cloudscale.yaml | 0 .../statefuleset-resize-controller.yaml | 0 .../golden/cloudscale/appcat/apps/appcat.yaml | 0 .../10_appcat_billing_recording_rule.yaml | 0 .../10_appcat_maintenance_recording_rule.yaml | 0 .../appcat/appcat/10_appcat_namespace.yaml | 0 .../appcat/10_clusterrole_finalizer.yaml | 0 .../appcat/10_clusterrole_services_read.yaml | 0 .../appcat/appcat/10_clusterrole_view.yaml | 0 .../controllers/appcat/10_cluster_role.yaml | 0 .../appcat/10_cluster_role_binding.yaml | 0 .../controllers/appcat/10_pg_webhooks.yaml | 0 .../controllers/appcat/10_redis_webhooks.yaml | 0 .../10_role_binding_leader_election.yaml | 0 .../appcat/10_role_leader_election.yaml | 0 .../appcat/10_webhook_certificate.yaml | 0 .../controllers/appcat/10_webhook_issuer.yaml | 0 .../appcat/10_webhook_service.yaml | 0 .../appcat/20_service_account.yaml | 0 .../controllers/appcat/30_deployment.yaml | 0 .../statefuleset-resize-controller.yaml | 0 .../controllers/appcat/apps/appcat.yaml | 0 .../10_appcat_billing_recording_rule.yaml | 0 .../10_appcat_maintenance_recording_rule.yaml | 0 .../appcat/appcat/10_appcat_namespace.yaml | 0 .../appcat/10_clusterrole_services_read.yaml | 0 .../appcat/appcat/10_clusterrole_view.yaml | 0 ...appcat-sliexporter-controller-manager.yaml | 0 ...er-controller-manager-metrics-monitor.yaml | 0 ...ppcat-sliexporter-appcat-sli-exporter.yaml | 0 ...ole_appcat-sliexporter-metrics-reader.yaml | 0 ...terrole_appcat-sliexporter-proxy-role.yaml | 0 ...ppcat-sliexporter-appcat-sli-exporter.yaml | 0 ..._appcat-sliexporter-proxy-rolebinding.yaml | 0 .../v1_namespace_appcat-slos.yaml | 0 ...er-controller-manager-metrics-service.yaml | 0 ...appcat-sliexporter-controller-manager.yaml | 0 .../statefuleset-resize-controller.yaml | 0 .../golden/defaults/appcat/apps/appcat.yaml | 0 .../10_appcat_billing_recording_rule.yaml | 0 .../10_appcat_maintenance_recording_rule.yaml | 0 .../appcat/appcat/10_appcat_namespace.yaml | 0 .../appcat/10_clusterrole_services_read.yaml | 0 .../appcat/appcat/10_clusterrole_view.yaml | 0 .../appcat/appcat/10_provider_exoscale.yaml | 0 .../appcat/appcat/10_provider_kubernetes.yaml | 0 .../appcat/appcat/20_rbac_exoscale_kafka.yaml | 0 .../appcat/appcat/20_rbac_exoscale_mysql.yaml | 0 .../appcat/20_rbac_exoscale_opensearch.yaml | 0 .../appcat/20_rbac_exoscale_postgres.yaml | 0 .../appcat/appcat/20_rbac_exoscale_redis.yaml | 0 .../appcat/appcat/20_rbac_objectstorage.yaml | 0 .../appcat/appcat/20_xrd_exoscale_kafka.yaml | 0 .../appcat/appcat/20_xrd_exoscale_mysql.yaml | 0 .../appcat/20_xrd_exoscale_opensearch.yaml | 0 .../appcat/20_xrd_exoscale_postgres.yaml | 0 .../appcat/appcat/20_xrd_exoscale_redis.yaml | 0 .../appcat/appcat/20_xrd_objectstorage.yaml | 0 .../appcat/21_composition_exoscale_kafka.yaml | 0 .../appcat/21_composition_exoscale_mysql.yaml | 0 .../21_composition_exoscale_opensearch.yaml | 0 .../21_composition_exoscale_postgres.yaml | 0 .../appcat/21_composition_exoscale_redis.yaml | 0 ...21_composition_objectstorage_exoscale.yaml | 0 .../statefuleset-resize-controller.yaml | 0 .../golden/exoscale/appcat/apps/appcat.yaml | 0 .../10_appcat_billing_recording_rule.yaml | 0 .../10_appcat_maintenance_recording_rule.yaml | 0 .../appcat/appcat/10_appcat_namespace.yaml | 0 .../appcat/10_clusterrole_services_read.yaml | 0 .../appcat/appcat/10_clusterrole_view.yaml | 0 .../appcat/appcat/10_mailgun_secret.yaml | 0 .../appcat/10_namespace_vshn_control.yaml | 0 .../minio/appcat/appcat/10_provider_helm.yaml | 0 .../appcat/appcat/10_provider_kubernetes.yaml | 0 ...helm_service_maintenance_cluster_role.yaml | 0 ...vice_maintenance_cluster_role_binding.yaml | 0 .../10_rbac_helm_service_maintenance_sa.yaml | 0 .../appcat/appcat/20_rbac_vshn_minio.yaml | 0 .../appcat/appcat/20_xrd_vshn_minio.yaml | 0 .../appcat/21_composition_vshn_minio.yaml | 0 .../appcat/apiserver/10_apiserver_envs.yaml | 0 .../apiserver/10_cluster_role_api_server.yaml | 0 .../10_cluster_role_basic_users.yaml | 0 .../apiserver/10_cluster_role_binding.yaml | 0 .../apiserver/10_cluster_role_view.yaml | 0 .../appcat/apiserver/20_service_account.yaml | 0 .../appcat/apiserver/30_api_service.yaml | 0 .../appcat/apiserver/30_deployment.yaml | 0 .../appcat/appcat/apiserver/30_service.yaml | 0 .../appcat/apiserver/31_api_certificate.yaml | 0 .../appcat/apiserver/31_api_issuer.yaml | 0 .../controllers/appcat/10_cluster_role.yaml | 0 .../appcat/10_cluster_role_binding.yaml | 0 .../controllers/appcat/10_pg_webhooks.yaml | 0 .../controllers/appcat/10_redis_webhooks.yaml | 0 .../10_role_binding_leader_election.yaml | 0 .../appcat/10_role_leader_election.yaml | 0 .../appcat/10_webhook_certificate.yaml | 0 .../controllers/appcat/10_webhook_issuer.yaml | 0 .../appcat/10_webhook_service.yaml | 0 .../appcat/20_service_account.yaml | 0 .../controllers/appcat/30_deployment.yaml | 0 .../appcat/sla_reporter/01_cronjob.yaml | 0 .../appcat/sla_reporter/02_object_bucket.yaml | 0 .../sla_reporter/03_network_policy.yaml | 0 ...appcat-sliexporter-controller-manager.yaml | 0 ...er-controller-manager-metrics-monitor.yaml | 0 ...ppcat-sliexporter-appcat-sli-exporter.yaml | 0 ...ole_appcat-sliexporter-metrics-reader.yaml | 0 ...terrole_appcat-sliexporter-proxy-role.yaml | 0 ...ppcat-sliexporter-appcat-sli-exporter.yaml | 0 ..._appcat-sliexporter-proxy-rolebinding.yaml | 0 .../v1_namespace_appcat-slos.yaml | 0 ...er-controller-manager-metrics-service.yaml | 0 ...appcat-sliexporter-controller-manager.yaml | 0 .../statefuleset-resize-controller.yaml | 0 .../golden/minio/appcat/apps/appcat.yaml | 0 .../10_appcat_billing_recording_rule.yaml | 0 .../10_appcat_maintenance_recording_rule.yaml | 0 .../appcat/appcat/10_appcat_namespace.yaml | 0 .../appcat/10_clusterrole_finalizer.yaml | 0 .../appcat/10_clusterrole_services_read.yaml | 0 .../appcat/appcat/10_clusterrole_view.yaml | 0 .../appcat/appcat/10_provider_cloudscale.yaml | 0 .../appcat/appcat/10_provider_exoscale.yaml | 0 .../appcat/appcat/10_provider_kubernetes.yaml | 0 .../appcat/appcat/20_rbac_exoscale_kafka.yaml | 0 .../appcat/appcat/20_rbac_exoscale_mysql.yaml | 0 .../appcat/20_rbac_exoscale_opensearch.yaml | 0 .../appcat/20_rbac_exoscale_postgres.yaml | 0 .../appcat/appcat/20_rbac_exoscale_redis.yaml | 0 .../appcat/appcat/20_rbac_objectstorage.yaml | 0 .../appcat/appcat/20_xrd_exoscale_kafka.yaml | 0 .../appcat/appcat/20_xrd_exoscale_mysql.yaml | 0 .../appcat/20_xrd_exoscale_opensearch.yaml | 0 .../appcat/20_xrd_exoscale_postgres.yaml | 0 .../appcat/appcat/20_xrd_exoscale_redis.yaml | 0 .../appcat/appcat/20_xrd_objectstorage.yaml | 0 .../appcat/21_composition_exoscale_kafka.yaml | 0 .../appcat/21_composition_exoscale_mysql.yaml | 0 .../21_composition_exoscale_opensearch.yaml | 0 .../21_composition_exoscale_postgres.yaml | 0 .../appcat/21_composition_exoscale_redis.yaml | 0 ...21_composition_objectstorage_exoscale.yaml | 0 .../21_openshift_template_kafka_exoscale.yaml | 0 .../21_openshift_template_mysql_exoscale.yaml | 0 ...penshift_template_opensearch_exoscale.yaml | 0 ...penshift_template_postgresql_exoscale.yaml | 0 .../21_openshift_template_redis_exoscale.yaml | 0 ...appcat-sliexporter-controller-manager.yaml | 0 ...er-controller-manager-metrics-monitor.yaml | 0 ...ppcat-sliexporter-appcat-sli-exporter.yaml | 0 ...ole_appcat-sliexporter-metrics-reader.yaml | 0 ...terrole_appcat-sliexporter-proxy-role.yaml | 0 ...ppcat-sliexporter-appcat-sli-exporter.yaml | 0 ..._appcat-sliexporter-proxy-rolebinding.yaml | 0 .../v1_namespace_appcat-slos.yaml | 0 ...er-controller-manager-metrics-service.yaml | 0 ...appcat-sliexporter-controller-manager.yaml | 0 .../statefuleset-resize-controller.yaml | 0 .../golden/openshift/appcat/apps/appcat.yaml | 0 .../10_appcat_billing_recording_rule.yaml | 0 .../10_appcat_maintenance_recording_rule.yaml | 0 .../appcat/appcat/10_appcat_namespace.yaml | 0 .../appcat/10_clusterrole_services_read.yaml | 0 .../appcat/appcat/10_clusterrole_view.yaml | 0 .../vshn/appcat/appcat/10_mailgun_secret.yaml | 0 .../appcat/10_namespace_vshn_control.yaml | 0 .../vshn/appcat/appcat/10_provider_helm.yaml | 0 .../appcat/appcat/10_provider_kubernetes.yaml | 0 .../vshn/appcat/appcat/10_provider_minio.yaml | 0 ...helm_service_maintenance_cluster_role.yaml | 0 ...vice_maintenance_cluster_role_binding.yaml | 0 .../10_rbac_helm_service_maintenance_sa.yaml | 0 .../appcat/20_plans_vshn_postgresql.yaml | 0 .../appcat/appcat/20_plans_vshn_redis.yaml | 0 .../appcat/appcat/20_rbac_objectstorage.yaml | 0 .../appcat/appcat/20_rbac_vshn_minio.yaml | 0 .../appcat/appcat/20_rbac_vshn_postgres.yaml | 0 .../appcat/appcat/20_rbac_vshn_redis.yaml | 0 .../appcat/20_rbac_vshn_redis_resize.yaml | 0 .../appcat/20_role_vshn_postgresrestore.yaml | 0 .../appcat/20_role_vshn_redisrestore.yaml | 0 .../appcat/appcat/20_xrd_objectstorage.yaml | 0 .../vshn/appcat/appcat/20_xrd_vshn_minio.yaml | 0 .../appcat/appcat/20_xrd_vshn_postgres.yaml | 0 .../vshn/appcat/appcat/20_xrd_vshn_redis.yaml | 0 .../21_composition_objectstorage_minio.yaml | 0 .../appcat/21_composition_vshn_minio.yaml | 0 .../appcat/21_composition_vshn_postgres.yaml | 0 .../21_composition_vshn_postgresrestore.yaml | 0 .../appcat/21_composition_vshn_redis.yaml | 0 .../appcat/22_prom_rule_sla_postgres.yaml | 0 .../appcat/appcat/22_prom_rule_sla_redis.yaml | 0 .../appcat/apiserver/10_apiserver_envs.yaml | 0 .../apiserver/10_cluster_role_api_server.yaml | 0 .../10_cluster_role_basic_users.yaml | 0 .../apiserver/10_cluster_role_binding.yaml | 0 .../apiserver/10_cluster_role_view.yaml | 0 .../appcat/apiserver/20_service_account.yaml | 0 .../appcat/apiserver/30_api_service.yaml | 0 .../appcat/apiserver/30_deployment.yaml | 0 .../appcat/appcat/apiserver/30_service.yaml | 0 .../appcat/apiserver/31_api_certificate.yaml | 0 .../appcat/apiserver/31_api_issuer.yaml | 0 .../controllers/appcat/10_cluster_role.yaml | 0 .../appcat/10_cluster_role_binding.yaml | 0 .../controllers/appcat/10_pg_webhooks.yaml | 0 .../controllers/appcat/10_redis_webhooks.yaml | 0 .../10_role_binding_leader_election.yaml | 0 .../appcat/10_role_leader_election.yaml | 0 .../appcat/10_webhook_certificate.yaml | 0 .../controllers/appcat/10_webhook_issuer.yaml | 0 .../appcat/10_webhook_service.yaml | 0 .../appcat/20_service_account.yaml | 0 .../controllers/appcat/30_deployment.yaml | 0 .../controllers/sts-resizer/10_binding.yaml | 0 .../sts-resizer/10_deployment.yaml | 0 .../controllers/sts-resizer/10_role.yaml | 0 .../appcat/controllers/sts-resizer/10_sa.yaml | 0 .../appcat/sla_reporter/01_cronjob.yaml | 0 .../appcat/sla_reporter/02_object_bucket.yaml | 0 .../sla_reporter/03_network_policy.yaml | 0 .../sli_exporter/90_slo_vshn_postgresql.yaml | 0 .../90_slo_vshn_postgresql_ha.yaml | 0 .../sli_exporter/90_slo_vshn_redis.yaml | 0 ...appcat-sliexporter-controller-manager.yaml | 0 ...er-controller-manager-metrics-monitor.yaml | 0 ...ppcat-sliexporter-appcat-sli-exporter.yaml | 0 ...ole_appcat-sliexporter-metrics-reader.yaml | 0 ...terrole_appcat-sliexporter-proxy-role.yaml | 0 ...ppcat-sliexporter-appcat-sli-exporter.yaml | 0 ..._appcat-sliexporter-proxy-rolebinding.yaml | 0 .../v1_namespace_appcat-slos.yaml | 0 ...er-controller-manager-metrics-service.yaml | 0 ...appcat-sliexporter-controller-manager.yaml | 0 .../golden/vshn/appcat/apps/appcat.yaml | 0 {tests => component/tests}/minio.yml | 0 {tests => component/tests}/openshift.yml | 0 {tests => component/tests}/vshn.yml | 0 package/.cruft.json | 20 + package/.github/workflows/test.yaml | 59 + package/.gitignore | 14 + package/.yamllint.yml | 23 + package/Makefile | 67 + package/Makefile.vars.mk | 40 + package/lab.yaml | 8 + package/main.yaml | 70 + package/tests/defaults.yml | 3 + .../10_appcat_billing_recording_rule.yaml | 85 ++ .../10_appcat_maintenance_recording_rule.yaml | 15 + .../appcat/appcat/10_appcat_namespace.yaml | 9 + .../appcat/10_clusterrole_services_read.yaml | 44 + .../appcat/appcat/10_clusterrole_view.yaml | 20 + .../appcat/apiserver/10_apiserver_envs.yaml | 12 + .../apiserver/10_cluster_role_api_server.yaml | 80 ++ .../10_cluster_role_basic_users.yaml | 17 + .../apiserver/10_cluster_role_binding.yaml | 15 + .../apiserver/10_cluster_role_view.yaml | 18 + .../appcat/apiserver/20_service_account.yaml | 5 + .../appcat/apiserver/30_api_service.yaml | 17 + .../appcat/apiserver/30_deployment.yaml | 52 + .../appcat/appcat/apiserver/30_service.yaml | 16 + .../appcat/apiserver/31_api_certificate.yaml | 25 + .../appcat/apiserver/31_api_issuer.yaml | 7 + ...appcat-sliexporter-controller-manager.yaml | 68 + ...er-controller-manager-metrics-monitor.yaml | 19 + ...ppcat-sliexporter-appcat-sli-exporter.yaml | 77 ++ ...ole_appcat-sliexporter-metrics-reader.yaml | 9 + ...terrole_appcat-sliexporter-proxy-role.yaml | 17 + ...ppcat-sliexporter-appcat-sli-exporter.yaml | 12 + ..._appcat-sliexporter-proxy-rolebinding.yaml | 12 + .../v1_namespace_appcat-slos.yaml | 8 + ...er-controller-manager-metrics-service.yaml | 15 + ...appcat-sliexporter-controller-manager.yaml | 5 + .../statefuleset-resize-controller.yaml | 0 .../golden/defaults/appcat/apps/appcat.yaml | 0 .../defaults/crossplane/apps/crossplane.yaml | 7 + .../crossplane/crossplane/00_namespace.yaml | 8 + .../crossplane/templates/clusterrole.yaml | 116 ++ .../templates/clusterrolebinding.yaml | 21 + .../crossplane/templates/deployment.yaml | 187 +++ ...-manager-allowed-provider-permissions.yaml | 17 + .../templates/rbac-manager-clusterrole.yaml | 113 ++ .../rbac-manager-clusterrolebinding.yaml | 21 + .../templates/rbac-manager-deployment.yaml | 102 ++ .../rbac-manager-managed-clusterroles.yaml | 400 ++++++ .../rbac-manager-serviceaccount.yaml | 14 + .../crossplane/templates/secret.yaml | 6 + .../crossplane/templates/service.yaml | 23 + .../crossplane/templates/serviceaccount.yaml | 14 + .../01_rbac_finalizer_clusterrole.yaml | 15 + .../01_rbac_finalizer_clusterrolebinding.yaml | 15 + pod.yaml | 1226 ----------------- renovate.json | 12 +- 377 files changed, 2450 insertions(+), 1398 deletions(-) create mode 100644 .github/workflows/component-test.yaml create mode 100644 .github/workflows/package-test.yaml rename .cruft.json => component/.cruft.json (100%) create mode 100644 component/.github/workflows/test.yaml rename .yamllint.yml => component/.yamllint.yml (100%) create mode 100644 component/Makefile create mode 100644 component/Makefile.vars.mk rename {class => component/class}/appcat.yml (98%) rename {class => component/class}/defaults.yml (100%) rename component/{ => component}/app.jsonnet (100%) rename component/{ => component}/appcat_apiserver.jsonnet (100%) rename component/{ => component}/appcat_controller.jsonnet (100%) rename component/{ => component}/appcat_sla_reporter.jsonnet (100%) rename component/{ => component}/appcat_sli_exporter.jsonnet (100%) rename component/{ => component}/common.libsonnet (100%) rename component/{ => component}/exoscale-plans/grafana.json (100%) rename component/{ => component}/exoscale-plans/kafka.json (100%) rename component/{ => component}/exoscale-plans/mysql.json (100%) rename component/{ => component}/exoscale-plans/opensearch.json (100%) rename component/{ => component}/exoscale-plans/pg.json (100%) rename component/{ => component}/exoscale-plans/redis.json (100%) rename component/{ => component}/exoscale_kafka.jsonnet (100%) rename component/{ => component}/exoscale_mysql.jsonnet (100%) rename component/{ => component}/exoscale_opensearch.jsonnet (100%) rename component/{ => component}/exoscale_postgres.jsonnet (100%) rename component/{ => component}/exoscale_redis.jsonnet (100%) rename component/{ => component}/main.jsonnet (100%) rename component/{ => component}/objectstorage.jsonnet (100%) rename component/{ => component}/promql/appcat.promql (100%) rename component/{ => component}/provider.jsonnet (100%) rename component/{ => component}/scripts/copy-pg-backup.sh (100%) rename component/{ => component}/scripts/pg-maintenance.sh (100%) rename component/{ => component}/slos.libsonnet (100%) rename component/{ => component}/sloth-input.jsonnet (100%) rename component/{ => component}/statefuleset-resize-controller.jsonnet (100%) rename component/{ => component}/vshn_minio.jsonnet (100%) rename component/{ => component}/vshn_postgres.jsonnet (100%) rename component/{ => component}/vshn_redis.jsonnet (100%) rename component/{ => component}/vshn_services.jsonnet (100%) rename component/{ => component}/xrds.libsonnet (100%) rename {lib => component/lib}/appcat-compositions.libsonnet (100%) rename run-sloth => component/run-sloth (100%) rename {tests => component/tests}/apiserver.yml (100%) rename {tests => component/tests}/cloudscale.yml (100%) rename {tests => component/tests}/controllers.yml (100%) rename {tests => component/tests}/defaults.yml (100%) rename {tests => component/tests}/exoscale.yml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/10_appcat_billing_recording_rule.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/10_appcat_maintenance_recording_rule.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/10_appcat_namespace.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/10_clusterrole_finalizer.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/10_clusterrole_services_read.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/10_clusterrole_view.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/apiserver/10_apiserver_envs.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_api_server.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_binding.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_view.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/apiserver/20_service_account.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/apiserver/30_api_service.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/apiserver/30_deployment.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/apiserver/30_service.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/apiserver/31_api_certificate.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/apiserver/31_api_issuer.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/appcat/statefuleset-resize-controller.yaml (100%) rename {tests => component/tests}/golden/apiserver/appcat/apps/appcat.yaml (100%) rename {tests => component/tests}/golden/cloudscale/appcat/appcat/10_appcat_billing_recording_rule.yaml (100%) rename {tests => component/tests}/golden/cloudscale/appcat/appcat/10_appcat_maintenance_recording_rule.yaml (100%) rename {tests => component/tests}/golden/cloudscale/appcat/appcat/10_appcat_namespace.yaml (100%) rename {tests => component/tests}/golden/cloudscale/appcat/appcat/10_clusterrole_services_read.yaml (100%) rename {tests => component/tests}/golden/cloudscale/appcat/appcat/10_clusterrole_view.yaml (100%) rename {tests => component/tests}/golden/cloudscale/appcat/appcat/10_provider_cloudscale.yaml (100%) rename {tests => component/tests}/golden/cloudscale/appcat/appcat/10_provider_kubernetes.yaml (100%) rename {tests => component/tests}/golden/cloudscale/appcat/appcat/20_rbac_objectstorage.yaml (100%) rename {tests => component/tests}/golden/cloudscale/appcat/appcat/20_xrd_objectstorage.yaml (100%) rename {tests => component/tests}/golden/cloudscale/appcat/appcat/21_composition_objectstorage_cloudscale.yaml (100%) rename {tests => component/tests}/golden/cloudscale/appcat/appcat/statefuleset-resize-controller.yaml (100%) rename {tests => component/tests}/golden/cloudscale/appcat/apps/appcat.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/10_appcat_billing_recording_rule.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/10_appcat_maintenance_recording_rule.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/10_appcat_namespace.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/10_clusterrole_finalizer.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/10_clusterrole_services_read.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/10_clusterrole_view.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/controllers/appcat/10_cluster_role.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/controllers/appcat/10_role_leader_election.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_service.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/controllers/appcat/20_service_account.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/controllers/appcat/30_deployment.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/appcat/statefuleset-resize-controller.yaml (100%) rename {tests => component/tests}/golden/controllers/appcat/apps/appcat.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/10_appcat_billing_recording_rule.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/10_appcat_maintenance_recording_rule.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/10_appcat_namespace.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/10_clusterrole_services_read.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/10_clusterrole_view.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/appcat/statefuleset-resize-controller.yaml (100%) rename {tests => component/tests}/golden/defaults/appcat/apps/appcat.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/10_appcat_billing_recording_rule.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/10_appcat_maintenance_recording_rule.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/10_appcat_namespace.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/10_clusterrole_services_read.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/10_clusterrole_view.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/10_provider_exoscale.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/10_provider_kubernetes.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/20_rbac_exoscale_kafka.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/20_rbac_exoscale_mysql.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/20_rbac_exoscale_opensearch.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/20_rbac_exoscale_postgres.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/20_rbac_exoscale_redis.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/20_rbac_objectstorage.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/20_xrd_exoscale_kafka.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/20_xrd_exoscale_mysql.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/20_xrd_exoscale_opensearch.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/20_xrd_exoscale_postgres.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/20_xrd_exoscale_redis.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/20_xrd_objectstorage.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/21_composition_exoscale_kafka.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/21_composition_exoscale_mysql.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/21_composition_exoscale_opensearch.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/21_composition_exoscale_postgres.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/21_composition_exoscale_redis.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/21_composition_objectstorage_exoscale.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/appcat/statefuleset-resize-controller.yaml (100%) rename {tests => component/tests}/golden/exoscale/appcat/apps/appcat.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/10_appcat_billing_recording_rule.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/10_appcat_maintenance_recording_rule.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/10_appcat_namespace.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/10_clusterrole_services_read.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/10_clusterrole_view.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/10_mailgun_secret.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/10_namespace_vshn_control.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/10_provider_helm.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/10_provider_kubernetes.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role_binding.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_sa.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/20_rbac_vshn_minio.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/20_xrd_vshn_minio.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/21_composition_vshn_minio.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/apiserver/10_apiserver_envs.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/apiserver/10_cluster_role_api_server.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/apiserver/10_cluster_role_binding.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/apiserver/10_cluster_role_view.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/apiserver/20_service_account.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/apiserver/30_api_service.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/apiserver/30_deployment.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/apiserver/30_service.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/apiserver/31_api_certificate.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/apiserver/31_api_issuer.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/controllers/appcat/10_cluster_role.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/controllers/appcat/10_role_leader_election.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/controllers/appcat/10_webhook_service.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/controllers/appcat/20_service_account.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/controllers/appcat/30_deployment.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/sla_reporter/01_cronjob.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/sla_reporter/02_object_bucket.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/sla_reporter/03_network_policy.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/appcat/statefuleset-resize-controller.yaml (100%) rename {tests => component/tests}/golden/minio/appcat/apps/appcat.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/10_appcat_billing_recording_rule.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/10_appcat_maintenance_recording_rule.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/10_appcat_namespace.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/10_clusterrole_finalizer.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/10_clusterrole_services_read.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/10_clusterrole_view.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/10_provider_cloudscale.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/10_provider_exoscale.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/10_provider_kubernetes.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/20_rbac_exoscale_kafka.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/20_rbac_exoscale_mysql.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/20_rbac_exoscale_opensearch.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/20_rbac_exoscale_postgres.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/20_rbac_exoscale_redis.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/20_rbac_objectstorage.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/20_xrd_exoscale_kafka.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/20_xrd_exoscale_mysql.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/20_xrd_exoscale_opensearch.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/20_xrd_exoscale_postgres.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/20_xrd_exoscale_redis.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/20_xrd_objectstorage.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/21_composition_exoscale_kafka.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/21_composition_exoscale_mysql.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/21_composition_exoscale_opensearch.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/21_composition_exoscale_postgres.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/21_composition_exoscale_redis.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/21_composition_objectstorage_exoscale.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/21_openshift_template_kafka_exoscale.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/21_openshift_template_mysql_exoscale.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/21_openshift_template_opensearch_exoscale.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/21_openshift_template_postgresql_exoscale.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/21_openshift_template_redis_exoscale.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/appcat/statefuleset-resize-controller.yaml (100%) rename {tests => component/tests}/golden/openshift/appcat/apps/appcat.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/10_appcat_billing_recording_rule.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/10_appcat_maintenance_recording_rule.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/10_appcat_namespace.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/10_clusterrole_services_read.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/10_clusterrole_view.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/10_mailgun_secret.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/10_namespace_vshn_control.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/10_provider_helm.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/10_provider_kubernetes.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/10_provider_minio.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role_binding.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_sa.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/20_plans_vshn_postgresql.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/20_plans_vshn_redis.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/20_rbac_objectstorage.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/20_rbac_vshn_minio.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/20_rbac_vshn_postgres.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/20_rbac_vshn_redis.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/20_rbac_vshn_redis_resize.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/20_role_vshn_postgresrestore.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/20_role_vshn_redisrestore.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/20_xrd_objectstorage.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/20_xrd_vshn_minio.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/20_xrd_vshn_postgres.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/20_xrd_vshn_redis.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/21_composition_objectstorage_minio.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/21_composition_vshn_minio.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/21_composition_vshn_postgres.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/21_composition_vshn_postgresrestore.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/21_composition_vshn_redis.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/22_prom_rule_sla_postgres.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/22_prom_rule_sla_redis.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/apiserver/10_apiserver_envs.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/apiserver/10_cluster_role_api_server.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/apiserver/10_cluster_role_binding.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/apiserver/10_cluster_role_view.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/apiserver/20_service_account.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/apiserver/30_api_service.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/apiserver/30_deployment.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/apiserver/30_service.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/apiserver/31_api_certificate.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/apiserver/31_api_issuer.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/appcat/10_cluster_role.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/appcat/10_role_leader_election.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_service.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/appcat/20_service_account.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/appcat/30_deployment.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/sts-resizer/10_binding.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/sts-resizer/10_deployment.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/sts-resizer/10_role.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/controllers/sts-resizer/10_sa.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sla_reporter/01_cronjob.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sla_reporter/02_object_bucket.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sla_reporter/03_network_policy.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_postgresql.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_postgresql_ha.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_redis.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml (100%) rename {tests => component/tests}/golden/vshn/appcat/apps/appcat.yaml (100%) rename {tests => component/tests}/minio.yml (100%) rename {tests => component/tests}/openshift.yml (100%) rename {tests => component/tests}/vshn.yml (100%) create mode 100644 package/.cruft.json create mode 100644 package/.github/workflows/test.yaml create mode 100644 package/.gitignore create mode 100644 package/.yamllint.yml create mode 100644 package/Makefile create mode 100644 package/Makefile.vars.mk create mode 100644 package/lab.yaml create mode 100644 package/main.yaml create mode 100644 package/tests/defaults.yml create mode 100644 package/tests/golden/defaults/appcat/appcat/10_appcat_billing_recording_rule.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/10_appcat_maintenance_recording_rule.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/10_appcat_namespace.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/10_clusterrole_services_read.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/10_clusterrole_view.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/apiserver/10_apiserver_envs.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_api_server.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_binding.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_view.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/apiserver/20_service_account.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/apiserver/30_api_service.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/apiserver/30_deployment.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/apiserver/30_service.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/apiserver/31_api_certificate.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/apiserver/31_api_issuer.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml create mode 100644 package/tests/golden/defaults/appcat/appcat/statefuleset-resize-controller.yaml create mode 100644 package/tests/golden/defaults/appcat/apps/appcat.yaml create mode 100644 package/tests/golden/defaults/crossplane/apps/crossplane.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/00_namespace.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/clusterrole.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/clusterrolebinding.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/deployment.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-allowed-provider-permissions.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-clusterrole.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-clusterrolebinding.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-deployment.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-managed-clusterroles.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-serviceaccount.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/secret.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/service.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/serviceaccount.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/01_rbac_finalizer_clusterrole.yaml create mode 100644 package/tests/golden/defaults/crossplane/crossplane/01_rbac_finalizer_clusterrolebinding.yaml delete mode 100644 pod.yaml diff --git a/.editorconfig b/.editorconfig index c4993887c..7c9f19491 100644 --- a/.editorconfig +++ b/.editorconfig @@ -25,6 +25,14 @@ insert_final_newline = false [Makefile] indent_style = tab -# Don't check for trailing newlines in golden tests output -[**/tests/golden/**] +; Ignore golden test outputs +[/component/tests/golden/**] +indent_size = unset +indent_style = unset insert_final_newline = unset +trim_trailing_whitespace = unset +[/package/tests/golden/**] +indent_size = unset +indent_style = unset +insert_final_newline = unset +trim_trailing_whitespace = unset diff --git a/.github/workflows/component-test.yaml b/.github/workflows/component-test.yaml new file mode 100644 index 000000000..fcad912b8 --- /dev/null +++ b/.github/workflows/component-test.yaml @@ -0,0 +1,65 @@ +name: Pull Request (component) +on: + pull_request: + branches: + - master + +env: + COMPONENT_NAME: appcat + +jobs: + linting: + runs-on: ubuntu-latest + strategy: + matrix: + command: + - lint_jsonnet + - lint_yaml + steps: + - uses: actions/checkout@v4 + - name: Run ${{ matrix.command }} + run: make -C component ${{ matrix.command }} + test: + runs-on: ubuntu-latest + strategy: + matrix: + instance: + - defaults + - exoscale + - cloudscale + - openshift + - vshn + - apiserver + - controllers + - minio + defaults: + run: + working-directory: ${{ env.COMPONENT_NAME }} + steps: + - uses: actions/checkout@v4 + with: + path: ${{ env.COMPONENT_NAME }} + - name: Compile component + run: make -C component test -e instance=${{ matrix.instance }} + golden: + runs-on: ubuntu-latest + strategy: + matrix: + instance: + - defaults + - exoscale + - cloudscale + - openshift + - vshn + - apiserver + - controllers + - minio + defaults: + run: + working-directory: ${{ env.COMPONENT_NAME }} + steps: + - uses: actions/checkout@v4 + with: + path: ${{ env.COMPONENT_NAME }} + - name: Golden diff + run: make -C component golden-diff -e instance=${{ matrix.instance }} diff --git a/.github/workflows/package-test.yaml b/.github/workflows/package-test.yaml new file mode 100644 index 000000000..b4d6d914f --- /dev/null +++ b/.github/workflows/package-test.yaml @@ -0,0 +1,51 @@ +name: Pull Request (package) +on: + pull_request: + branches: + - master + +env: + PACKAGE_NAME: appcat + +jobs: + linting: + runs-on: ubuntu-latest + strategy: + matrix: + command: + - lint_yaml + - lint_commodore + steps: + - uses: actions/checkout@v4 + - name: Run ${{ matrix.command }} + run: make -C package ${{ matrix.command }} + test: + runs-on: ubuntu-latest + strategy: + matrix: + instance: + - defaults + defaults: + run: + working-directory: ${{ env.PACKAGE_NAME }} + steps: + - uses: actions/checkout@v4 + with: + path: ${{ env.PACKAGE_NAME }} + - name: Compile component + run: make -C package test -e instance=${{ matrix.instance }} + golden: + runs-on: ubuntu-latest + strategy: + matrix: + instance: + - defaults + defaults: + run: + working-directory: ${{ env.PACKAGE_NAME }} + steps: + - uses: actions/checkout@v4 + with: + path: ${{ env.PACKAGE_NAME }} + - name: Golden diff + run: make -C package golden-diff -e instance=${{ matrix.instance }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 36c0ef8bd..9a90fbae4 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -30,3 +30,14 @@ jobs: # Ensure target branch for release is "master" commit: master token: ${{ secrets.GITHUB_TOKEN }} + update-version: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Change version in package + run: | + sed -i "s/componentVersion: .*/componentVersion: ${{ github.ref }}/g" package/main.yaml + - uses: EndBug/add-and-commit@v7 + with: + default_author: user_info + message: "Update component version in package to ${{ github.ref }}" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index a1bb35cc3..c9df0aa1d 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,73 +1,21 @@ -name: Pull Request +name: Pull Request (global lints) + on: pull_request: branches: - master - -env: - COMPONENT_NAME: appcat - jobs: linting: runs-on: ubuntu-latest - strategy: - matrix: - command: - - lint_jsonnet - - lint_yaml - - lint_adoc steps: - uses: actions/checkout@v4 - - name: Run ${{ matrix.command }} - run: make ${{ matrix.command }} + - name: Run Asciidoc linter + run: make lint_adoc + editorconfig: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: snow-actions/eclint@v1.0.1 with: - args: 'check' - test: - runs-on: ubuntu-latest - strategy: - matrix: - instance: - - defaults - - exoscale - - cloudscale - - openshift - - vshn - - apiserver - - controllers - - minio - defaults: - run: - working-directory: ${{ env.COMPONENT_NAME }} - steps: - - uses: actions/checkout@v4 - with: - path: ${{ env.COMPONENT_NAME }} - - name: Compile component - run: make test -e instance=${{ matrix.instance }} - golden: - runs-on: ubuntu-latest - strategy: - matrix: - instance: - - defaults - - exoscale - - cloudscale - - openshift - - vshn - - apiserver - - controllers - - minio - defaults: - run: - working-directory: ${{ env.COMPONENT_NAME }} - steps: - - uses: actions/checkout@v4 - with: - path: ${{ env.COMPONENT_NAME }} - - name: Golden diff - run: make golden-diff -e instance=${{ matrix.instance }} + args: "check" diff --git a/.gitignore b/.gitignore index 07ed01d7d..37688dc1b 100644 --- a/.gitignore +++ b/.gitignore @@ -8,15 +8,28 @@ .kind .idea -# jsonnet builder -component/jsonnetfile.json - -compiled/ -vendor/ -dependencies/ -hack/ - # sloth artifacts sloth-*-*-* sloth-input/ sloth-output/ + +# Commodore +/component/.cache +/component/dependencies +/component/helmcharts +/component/manifests +/component/vendor +/component/jsonnetfile.lock.json +/component/crds +/component/compiled + +/package/.cache +/package/dependencies +/package/helmcharts +/package/manifests +/package/vendor +/package/jsonnetfile.lock.json +/package/crds +/package/compiled + +# Additional entries diff --git a/Makefile b/Makefile index 88fe25175..ff5fc04b8 100644 --- a/Makefile +++ b/Makefile @@ -7,84 +7,17 @@ SHELL := bash include Makefile.vars.mk +.PHONY: all +all: help + .PHONY: help help: ## Show this help @grep -E -h '\s##\s' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = "(: ).*?## "}; {gsub(/\\:/,":", $$1)}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' -.PHONY: all -all: lint - -.PHONY: lint -lint: lint_jsonnet lint_yaml lint_adoc lint_kubent ## All-in-one linting - -.PHONY: lint_jsonnet -lint_jsonnet: $(JSONNET_FILES) ## Lint jsonnet files - $(JSONNET_DOCKER) $(JSONNETFMT_ARGS) --test -- $? - -.PHONY: lint_yaml -lint_yaml: ## Lint yaml files - $(YAMLLINT_DOCKER) -f parsable -c $(YAMLLINT_CONFIG) $(YAMLLINT_ARGS) -- . - .PHONY: lint_adoc lint_adoc: ## Lint documentation $(VALE_CMD) $(VALE_ARGS) -.PHONY: lint_kubent -lint_kubent: ## Lint deprecated Kubernetes API versions - $(KUBENT_DOCKER) $(KUBENT_ARGS) -f $(KUBENT_FILES) - -.PHONY: format -format: format_jsonnet ## All-in-one formatting - -.PHONY: format_jsonnet -format_jsonnet: $(JSONNET_FILES) ## Format jsonnet files - $(JSONNET_DOCKER) $(JSONNETFMT_ARGS) -- $? - .PHONY: docs-serve docs-serve: ## Preview the documentation $(ANTORA_PREVIEW_CMD) - -.PHONY: compile -.compile: - mkdir -p dependencies - $(COMPILE_CMD) - -.PHONY: test -test: commodore_args += -f tests/$(instance).yml -test: .compile ## Compile the component -.PHONY: gen-golden -gen-golden: commodore_args += -f tests/$(instance).yml -gen-golden: clean .compile ## Update the reference version for target `golden-diff`. - @rm -rf tests/golden/$(instance) - @mkdir -p tests/golden/$(instance) - @cp -R compiled/. tests/golden/$(instance)/. - -.PHONY: golden-diff -golden-diff: commodore_args += -f tests/$(instance).yml -golden-diff: clean .compile ## Diff compile output against the reference version. Review output and run `make gen-golden golden-diff` if this target fails. - @git diff --exit-code --minimal --no-index -- tests/golden/$(instance) compiled/ - -.PHONY: golden-diff-all -golden-diff-all: recursive_target=golden-diff -golden-diff-all: $(test_instances) ## Run golden-diff for all instances. Note: this doesn't work when running make with multiple parallel jobs (-j != 1). - -.PHONY: gen-golden-all -gen-golden-all: recursive_target=gen-golden -gen-golden-all: $(test_instances) ## Run gen-golden for all instances. Note: this doesn't work when running make with multiple parallel jobs (-j != 1). - -.PHONY: lint_kubent_all -lint_kubent_all: recursive_target=lint_kubent -lint_kubent_all: $(test_instances) ## Lint deprecated Kubernetes API versions for all golden test instances. Will exit on first error. Note: this doesn't work when running make with multiple parallel jobs (-j != 1). - -.PHONY: $(test_instances) -$(test_instances): - $(MAKE) $(recursive_target) -e instance=$(basename $(@F)) - -.PHONY: generate-exoscale-plans -generate-exoscale-plans: ## Generate current plans for Exoscale - cd dev/scripts/exoscale-plans/ && \ - go run main.go - -.PHONY: clean -clean: ## Clean the project - rm -rf .cache compiled dependencies vendor helmcharts jsonnetfile*.json || true diff --git a/Makefile.vars.mk b/Makefile.vars.mk index 1cea253c1..6e3f5e8b0 100644 --- a/Makefile.vars.mk +++ b/Makefile.vars.mk @@ -1,17 +1,11 @@ -# Commodore takes the root dir name as the component name COMPONENT_NAME ?= appcat -git_dir ?= $(shell git rev-parse --git-common-dir) -compiled_path ?= compiled/$(COMPONENT_NAME)/$(COMPONENT_NAME) -root_volume ?= -v "$${PWD}/:/$(COMPONENT_NAME)" -compiled_volume ?= -v "$${PWD}/$(compiled_path):/$(COMPONENT_NAME)" -commodore_args ?= --search-paths ./dependencies --search-paths . -n $(COMPONENT_NAME) +git_dir ?= $(shell git rev-parse --git-common-dir) +root_volume ?= -v "$${PWD}:/$(COMPONENT_NAME)" ifneq "$(git_dir)" ".git" - git_volume ?= -v "$(git_dir):$(git_dir):ro" antora_git_volume ?= -v "$(git_dir):/preview/antora/.git:ro" else - git_volume ?= antora_git_volume ?= -v "${PWD}/.git:/preview/antora/.git:ro" endif @@ -24,26 +18,7 @@ else endif DOCKER_ARGS ?= run --rm -u "$$(id -u):$$(id -g)" --userns=$(DOCKER_USERNS) -w /$(COMPONENT_NAME) -e HOME="/$(COMPONENT_NAME)" -JSONNET_FILES ?= $(shell find . -type f -not -path './vendor/*' \( -name '*.*jsonnet' -or -name '*.libsonnet' \)) -JSONNETFMT_ARGS ?= --in-place --pad-arrays -JSONNET_IMAGE ?= docker.io/bitnami/jsonnet:latest -JSONNET_DOCKER ?= $(DOCKER_CMD) $(DOCKER_ARGS) $(root_volume) --entrypoint=jsonnetfmt $(JSONNET_IMAGE) - VALE_CMD ?= $(DOCKER_CMD) $(DOCKER_ARGS) $(root_volume) --volume "$${PWD}"/docs/modules:/pages ghcr.io/vshn/vale:2.15.5 VALE_ARGS ?= --minAlertLevel=error --config=/pages/ROOT/pages/.vale.ini /pages -ANTORA_PREVIEW_CMD ?= $(DOCKER_CMD) run --rm --publish 35729:35729 --publish 2020:2020 $(antora_git_volume) --volume "${PWD}/docs":/preview/antora/docs ghcr.io/vshn/antora-preview:3.1.4 --style=syn --antora=docs - -COMMODORE_CMD ?= $(DOCKER_CMD) $(DOCKER_ARGS) $(root_volume) docker.io/projectsyn/commodore:latest -COMPILE_CMD ?= $(COMMODORE_CMD) component compile . $(commodore_args) -JB_CMD ?= $(DOCKER_CMD) $(DOCKER_ARGS) --entrypoint /usr/local/bin/jb docker.io/projectsyn/commodore:latest install - -GOLDEN_FILES ?= $(shell find tests/golden/$(instance) -type f) - -KUBENT_FILES ?= $(shell echo "$(GOLDEN_FILES)" | sed 's/ /,/g') -KUBENT_ARGS ?= -c=false --helm3=false -e -KUBENT_IMAGE ?= ghcr.io/doitintl/kube-no-trouble:latest -KUBENT_DOCKER ?= $(DOCKER_CMD) $(DOCKER_ARGS) $(root_volume) --entrypoint=/app/kubent $(KUBENT_IMAGE) - -instance ?= defaults -test_instances = tests/defaults.yml tests/exoscale.yml tests/cloudscale.yml tests/openshift.yml tests/vshn.yml tests/apiserver.yml tests/controllers.yml tests/minio.yml +ANTORA_PREVIEW_CMD ?= $(DOCKER_CMD) run --rm --publish 35729:35729 --publish 2020:2020 $(antora_git_volume) --volume "${PWD}/docs":/preview/antora/docs ghcr.io/vshn/antora-preview:3.1.2.3 --style=syn --antora=docs diff --git a/.cruft.json b/component/.cruft.json similarity index 100% rename from .cruft.json rename to component/.cruft.json diff --git a/component/.github/workflows/test.yaml b/component/.github/workflows/test.yaml new file mode 100644 index 000000000..a1bb35cc3 --- /dev/null +++ b/component/.github/workflows/test.yaml @@ -0,0 +1,73 @@ +name: Pull Request +on: + pull_request: + branches: + - master + +env: + COMPONENT_NAME: appcat + +jobs: + linting: + runs-on: ubuntu-latest + strategy: + matrix: + command: + - lint_jsonnet + - lint_yaml + - lint_adoc + steps: + - uses: actions/checkout@v4 + - name: Run ${{ matrix.command }} + run: make ${{ matrix.command }} + editorconfig: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: snow-actions/eclint@v1.0.1 + with: + args: 'check' + test: + runs-on: ubuntu-latest + strategy: + matrix: + instance: + - defaults + - exoscale + - cloudscale + - openshift + - vshn + - apiserver + - controllers + - minio + defaults: + run: + working-directory: ${{ env.COMPONENT_NAME }} + steps: + - uses: actions/checkout@v4 + with: + path: ${{ env.COMPONENT_NAME }} + - name: Compile component + run: make test -e instance=${{ matrix.instance }} + golden: + runs-on: ubuntu-latest + strategy: + matrix: + instance: + - defaults + - exoscale + - cloudscale + - openshift + - vshn + - apiserver + - controllers + - minio + defaults: + run: + working-directory: ${{ env.COMPONENT_NAME }} + steps: + - uses: actions/checkout@v4 + with: + path: ${{ env.COMPONENT_NAME }} + - name: Golden diff + run: make golden-diff -e instance=${{ matrix.instance }} diff --git a/.yamllint.yml b/component/.yamllint.yml similarity index 100% rename from .yamllint.yml rename to component/.yamllint.yml diff --git a/component/Makefile b/component/Makefile new file mode 100644 index 000000000..23c14c4a6 --- /dev/null +++ b/component/Makefile @@ -0,0 +1,86 @@ +MAKEFLAGS += --warn-undefined-variables +SHELL := bash +.SHELLFLAGS := -eu -o pipefail -c +.DEFAULT_GOAL := all +.DELETE_ON_ERROR: +.SUFFIXES: + +include Makefile.vars.mk + +.PHONY: help +help: ## Show this help + @grep -E -h '\s##\s' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = "(: ).*?## "}; {gsub(/\\:/,":", $$1)}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' + +.PHONY: all +all: lint + +.PHONY: lint +lint: lint_jsonnet lint_yaml lint_adoc lint_kubent ## All-in-one linting + +.PHONY: lint_jsonnet +lint_jsonnet: $(JSONNET_FILES) ## Lint jsonnet files + $(JSONNET_DOCKER) $(JSONNETFMT_ARGS) --test -- $? + +.PHONY: lint_yaml +lint_yaml: ## Lint yaml files + $(YAMLLINT_DOCKER) -f parsable -c $(YAMLLINT_CONFIG) $(YAMLLINT_ARGS) -- . + +.PHONY: lint_adoc +lint_adoc: ## Lint documentation + $(VALE_CMD) $(VALE_ARGS) + +.PHONY: lint_kubent +lint_kubent: ## Lint deprecated Kubernetes API versions + $(KUBENT_DOCKER) $(KUBENT_ARGS) -f $(KUBENT_FILES) + +.PHONY: format +format: format_jsonnet ## All-in-one formatting + +.PHONY: format_jsonnet +format_jsonnet: $(JSONNET_FILES) ## Format jsonnet files + $(JSONNET_DOCKER) $(JSONNETFMT_ARGS) -- $? + +.PHONY: docs-serve +docs-serve: ## Preview the documentation + $(ANTORA_PREVIEW_CMD) + +.PHONY: compile +.compile: + mkdir -p dependencies + $(COMPILE_CMD) + +.PHONY: test +test: commodore_args += -f tests/$(instance).yml +test: .compile ## Compile the component +.PHONY: gen-golden +gen-golden: commodore_args += -f tests/$(instance).yml +gen-golden: clean .compile ## Update the reference version for target `golden-diff`. + @rm -rf tests/golden/$(instance) + @mkdir -p tests/golden/$(instance) + @cp -R compiled/. tests/golden/$(instance)/. + +.PHONY: golden-diff +golden-diff: commodore_args += -f tests/$(instance).yml +golden-diff: clean .compile ## Diff compile output against the reference version. Review output and run `make gen-golden golden-diff` if this target fails. + @git diff --exit-code --minimal --no-index -- tests/golden/$(instance) compiled/ + +.PHONY: golden-diff-all +golden-diff-all: recursive_target=golden-diff +golden-diff-all: $(test_instances) ## Run golden-diff for all instances. Note: this doesn't work when running make with multiple parallel jobs (-j != 1). + +.PHONY: gen-golden-all +gen-golden-all: recursive_target=gen-golden +gen-golden-all: $(test_instances) ## Run gen-golden for all instances. Note: this doesn't work when running make with multiple parallel jobs (-j != 1). + +.PHONY: lint_kubent_all +lint_kubent_all: recursive_target=lint_kubent +lint_kubent_all: $(test_instances) ## Lint deprecated Kubernetes API versions for all golden test instances. Will exit on first error. Note: this doesn't work when running make with multiple parallel jobs (-j != 1). + +.PHONY: $(test_instances) +$(test_instances): + $(MAKE) $(recursive_target) -e instance=$(basename $(@F)) + + +.PHONY: clean +clean: ## Clean the project + rm -rf .cache compiled dependencies vendor helmcharts jsonnetfile*.json || true diff --git a/component/Makefile.vars.mk b/component/Makefile.vars.mk new file mode 100644 index 000000000..1cea253c1 --- /dev/null +++ b/component/Makefile.vars.mk @@ -0,0 +1,49 @@ +# Commodore takes the root dir name as the component name +COMPONENT_NAME ?= appcat + +git_dir ?= $(shell git rev-parse --git-common-dir) +compiled_path ?= compiled/$(COMPONENT_NAME)/$(COMPONENT_NAME) +root_volume ?= -v "$${PWD}/:/$(COMPONENT_NAME)" +compiled_volume ?= -v "$${PWD}/$(compiled_path):/$(COMPONENT_NAME)" +commodore_args ?= --search-paths ./dependencies --search-paths . -n $(COMPONENT_NAME) + +ifneq "$(git_dir)" ".git" + git_volume ?= -v "$(git_dir):$(git_dir):ro" + antora_git_volume ?= -v "$(git_dir):/preview/antora/.git:ro" +else + git_volume ?= + antora_git_volume ?= -v "${PWD}/.git:/preview/antora/.git:ro" +endif + +ifneq "$(shell which docker 2>/dev/null)" "" + DOCKER_CMD ?= $(shell which docker) + DOCKER_USERNS ?= "" +else + DOCKER_CMD ?= podman + DOCKER_USERNS ?= keep-id +endif +DOCKER_ARGS ?= run --rm -u "$$(id -u):$$(id -g)" --userns=$(DOCKER_USERNS) -w /$(COMPONENT_NAME) -e HOME="/$(COMPONENT_NAME)" + +JSONNET_FILES ?= $(shell find . -type f -not -path './vendor/*' \( -name '*.*jsonnet' -or -name '*.libsonnet' \)) +JSONNETFMT_ARGS ?= --in-place --pad-arrays +JSONNET_IMAGE ?= docker.io/bitnami/jsonnet:latest +JSONNET_DOCKER ?= $(DOCKER_CMD) $(DOCKER_ARGS) $(root_volume) --entrypoint=jsonnetfmt $(JSONNET_IMAGE) + +VALE_CMD ?= $(DOCKER_CMD) $(DOCKER_ARGS) $(root_volume) --volume "$${PWD}"/docs/modules:/pages ghcr.io/vshn/vale:2.15.5 +VALE_ARGS ?= --minAlertLevel=error --config=/pages/ROOT/pages/.vale.ini /pages + +ANTORA_PREVIEW_CMD ?= $(DOCKER_CMD) run --rm --publish 35729:35729 --publish 2020:2020 $(antora_git_volume) --volume "${PWD}/docs":/preview/antora/docs ghcr.io/vshn/antora-preview:3.1.4 --style=syn --antora=docs + +COMMODORE_CMD ?= $(DOCKER_CMD) $(DOCKER_ARGS) $(root_volume) docker.io/projectsyn/commodore:latest +COMPILE_CMD ?= $(COMMODORE_CMD) component compile . $(commodore_args) +JB_CMD ?= $(DOCKER_CMD) $(DOCKER_ARGS) --entrypoint /usr/local/bin/jb docker.io/projectsyn/commodore:latest install + +GOLDEN_FILES ?= $(shell find tests/golden/$(instance) -type f) + +KUBENT_FILES ?= $(shell echo "$(GOLDEN_FILES)" | sed 's/ /,/g') +KUBENT_ARGS ?= -c=false --helm3=false -e +KUBENT_IMAGE ?= ghcr.io/doitintl/kube-no-trouble:latest +KUBENT_DOCKER ?= $(DOCKER_CMD) $(DOCKER_ARGS) $(root_volume) --entrypoint=/app/kubent $(KUBENT_IMAGE) + +instance ?= defaults +test_instances = tests/defaults.yml tests/exoscale.yml tests/cloudscale.yml tests/openshift.yml tests/vshn.yml tests/apiserver.yml tests/controllers.yml tests/minio.yml diff --git a/class/appcat.yml b/component/class/appcat.yml similarity index 98% rename from class/appcat.yml rename to component/class/appcat.yml index 73389b4d9..6ba8903af 100644 --- a/class/appcat.yml +++ b/component/class/appcat.yml @@ -33,7 +33,7 @@ parameters: output_path: . - input_type: external input_paths: - - appcat/run-sloth + - ${_base_directory}/run-sloth output_path: . env_vars: SLOTH_VERSION: ${appcat:images:sloth:tag} @@ -44,7 +44,6 @@ parameters: - -o - ${_base_directory}/sloth-output - - input_paths: - ${_base_directory}/component/main.jsonnet input_type: jsonnet @@ -86,7 +85,6 @@ parameters: input_type: jsonnet output_path: appcat/sla_reporter - - input_paths: - ${_base_directory}/sloth-input - ${_base_directory}/sloth-output diff --git a/class/defaults.yml b/component/class/defaults.yml similarity index 100% rename from class/defaults.yml rename to component/class/defaults.yml diff --git a/component/app.jsonnet b/component/component/app.jsonnet similarity index 100% rename from component/app.jsonnet rename to component/component/app.jsonnet diff --git a/component/appcat_apiserver.jsonnet b/component/component/appcat_apiserver.jsonnet similarity index 100% rename from component/appcat_apiserver.jsonnet rename to component/component/appcat_apiserver.jsonnet diff --git a/component/appcat_controller.jsonnet b/component/component/appcat_controller.jsonnet similarity index 100% rename from component/appcat_controller.jsonnet rename to component/component/appcat_controller.jsonnet diff --git a/component/appcat_sla_reporter.jsonnet b/component/component/appcat_sla_reporter.jsonnet similarity index 100% rename from component/appcat_sla_reporter.jsonnet rename to component/component/appcat_sla_reporter.jsonnet diff --git a/component/appcat_sli_exporter.jsonnet b/component/component/appcat_sli_exporter.jsonnet similarity index 100% rename from component/appcat_sli_exporter.jsonnet rename to component/component/appcat_sli_exporter.jsonnet diff --git a/component/common.libsonnet b/component/component/common.libsonnet similarity index 100% rename from component/common.libsonnet rename to component/component/common.libsonnet diff --git a/component/exoscale-plans/grafana.json b/component/component/exoscale-plans/grafana.json similarity index 100% rename from component/exoscale-plans/grafana.json rename to component/component/exoscale-plans/grafana.json diff --git a/component/exoscale-plans/kafka.json b/component/component/exoscale-plans/kafka.json similarity index 100% rename from component/exoscale-plans/kafka.json rename to component/component/exoscale-plans/kafka.json diff --git a/component/exoscale-plans/mysql.json b/component/component/exoscale-plans/mysql.json similarity index 100% rename from component/exoscale-plans/mysql.json rename to component/component/exoscale-plans/mysql.json diff --git a/component/exoscale-plans/opensearch.json b/component/component/exoscale-plans/opensearch.json similarity index 100% rename from component/exoscale-plans/opensearch.json rename to component/component/exoscale-plans/opensearch.json diff --git a/component/exoscale-plans/pg.json b/component/component/exoscale-plans/pg.json similarity index 100% rename from component/exoscale-plans/pg.json rename to component/component/exoscale-plans/pg.json diff --git a/component/exoscale-plans/redis.json b/component/component/exoscale-plans/redis.json similarity index 100% rename from component/exoscale-plans/redis.json rename to component/component/exoscale-plans/redis.json diff --git a/component/exoscale_kafka.jsonnet b/component/component/exoscale_kafka.jsonnet similarity index 100% rename from component/exoscale_kafka.jsonnet rename to component/component/exoscale_kafka.jsonnet diff --git a/component/exoscale_mysql.jsonnet b/component/component/exoscale_mysql.jsonnet similarity index 100% rename from component/exoscale_mysql.jsonnet rename to component/component/exoscale_mysql.jsonnet diff --git a/component/exoscale_opensearch.jsonnet b/component/component/exoscale_opensearch.jsonnet similarity index 100% rename from component/exoscale_opensearch.jsonnet rename to component/component/exoscale_opensearch.jsonnet diff --git a/component/exoscale_postgres.jsonnet b/component/component/exoscale_postgres.jsonnet similarity index 100% rename from component/exoscale_postgres.jsonnet rename to component/component/exoscale_postgres.jsonnet diff --git a/component/exoscale_redis.jsonnet b/component/component/exoscale_redis.jsonnet similarity index 100% rename from component/exoscale_redis.jsonnet rename to component/component/exoscale_redis.jsonnet diff --git a/component/main.jsonnet b/component/component/main.jsonnet similarity index 100% rename from component/main.jsonnet rename to component/component/main.jsonnet diff --git a/component/objectstorage.jsonnet b/component/component/objectstorage.jsonnet similarity index 100% rename from component/objectstorage.jsonnet rename to component/component/objectstorage.jsonnet diff --git a/component/promql/appcat.promql b/component/component/promql/appcat.promql similarity index 100% rename from component/promql/appcat.promql rename to component/component/promql/appcat.promql diff --git a/component/provider.jsonnet b/component/component/provider.jsonnet similarity index 100% rename from component/provider.jsonnet rename to component/component/provider.jsonnet diff --git a/component/scripts/copy-pg-backup.sh b/component/component/scripts/copy-pg-backup.sh similarity index 100% rename from component/scripts/copy-pg-backup.sh rename to component/component/scripts/copy-pg-backup.sh diff --git a/component/scripts/pg-maintenance.sh b/component/component/scripts/pg-maintenance.sh similarity index 100% rename from component/scripts/pg-maintenance.sh rename to component/component/scripts/pg-maintenance.sh diff --git a/component/slos.libsonnet b/component/component/slos.libsonnet similarity index 100% rename from component/slos.libsonnet rename to component/component/slos.libsonnet diff --git a/component/sloth-input.jsonnet b/component/component/sloth-input.jsonnet similarity index 100% rename from component/sloth-input.jsonnet rename to component/component/sloth-input.jsonnet diff --git a/component/statefuleset-resize-controller.jsonnet b/component/component/statefuleset-resize-controller.jsonnet similarity index 100% rename from component/statefuleset-resize-controller.jsonnet rename to component/component/statefuleset-resize-controller.jsonnet diff --git a/component/vshn_minio.jsonnet b/component/component/vshn_minio.jsonnet similarity index 100% rename from component/vshn_minio.jsonnet rename to component/component/vshn_minio.jsonnet diff --git a/component/vshn_postgres.jsonnet b/component/component/vshn_postgres.jsonnet similarity index 100% rename from component/vshn_postgres.jsonnet rename to component/component/vshn_postgres.jsonnet diff --git a/component/vshn_redis.jsonnet b/component/component/vshn_redis.jsonnet similarity index 100% rename from component/vshn_redis.jsonnet rename to component/component/vshn_redis.jsonnet diff --git a/component/vshn_services.jsonnet b/component/component/vshn_services.jsonnet similarity index 100% rename from component/vshn_services.jsonnet rename to component/component/vshn_services.jsonnet diff --git a/component/xrds.libsonnet b/component/component/xrds.libsonnet similarity index 100% rename from component/xrds.libsonnet rename to component/component/xrds.libsonnet diff --git a/lib/appcat-compositions.libsonnet b/component/lib/appcat-compositions.libsonnet similarity index 100% rename from lib/appcat-compositions.libsonnet rename to component/lib/appcat-compositions.libsonnet diff --git a/run-sloth b/component/run-sloth similarity index 100% rename from run-sloth rename to component/run-sloth diff --git a/tests/apiserver.yml b/component/tests/apiserver.yml similarity index 100% rename from tests/apiserver.yml rename to component/tests/apiserver.yml diff --git a/tests/cloudscale.yml b/component/tests/cloudscale.yml similarity index 100% rename from tests/cloudscale.yml rename to component/tests/cloudscale.yml diff --git a/tests/controllers.yml b/component/tests/controllers.yml similarity index 100% rename from tests/controllers.yml rename to component/tests/controllers.yml diff --git a/tests/defaults.yml b/component/tests/defaults.yml similarity index 100% rename from tests/defaults.yml rename to component/tests/defaults.yml diff --git a/tests/exoscale.yml b/component/tests/exoscale.yml similarity index 100% rename from tests/exoscale.yml rename to component/tests/exoscale.yml diff --git a/tests/golden/apiserver/appcat/appcat/10_appcat_billing_recording_rule.yaml b/component/tests/golden/apiserver/appcat/appcat/10_appcat_billing_recording_rule.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/10_appcat_billing_recording_rule.yaml rename to component/tests/golden/apiserver/appcat/appcat/10_appcat_billing_recording_rule.yaml diff --git a/tests/golden/apiserver/appcat/appcat/10_appcat_maintenance_recording_rule.yaml b/component/tests/golden/apiserver/appcat/appcat/10_appcat_maintenance_recording_rule.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/10_appcat_maintenance_recording_rule.yaml rename to component/tests/golden/apiserver/appcat/appcat/10_appcat_maintenance_recording_rule.yaml diff --git a/tests/golden/apiserver/appcat/appcat/10_appcat_namespace.yaml b/component/tests/golden/apiserver/appcat/appcat/10_appcat_namespace.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/10_appcat_namespace.yaml rename to component/tests/golden/apiserver/appcat/appcat/10_appcat_namespace.yaml diff --git a/tests/golden/apiserver/appcat/appcat/10_clusterrole_finalizer.yaml b/component/tests/golden/apiserver/appcat/appcat/10_clusterrole_finalizer.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/10_clusterrole_finalizer.yaml rename to component/tests/golden/apiserver/appcat/appcat/10_clusterrole_finalizer.yaml diff --git a/tests/golden/apiserver/appcat/appcat/10_clusterrole_services_read.yaml b/component/tests/golden/apiserver/appcat/appcat/10_clusterrole_services_read.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/10_clusterrole_services_read.yaml rename to component/tests/golden/apiserver/appcat/appcat/10_clusterrole_services_read.yaml diff --git a/tests/golden/apiserver/appcat/appcat/10_clusterrole_view.yaml b/component/tests/golden/apiserver/appcat/appcat/10_clusterrole_view.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/10_clusterrole_view.yaml rename to component/tests/golden/apiserver/appcat/appcat/10_clusterrole_view.yaml diff --git a/tests/golden/apiserver/appcat/appcat/apiserver/10_apiserver_envs.yaml b/component/tests/golden/apiserver/appcat/appcat/apiserver/10_apiserver_envs.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/apiserver/10_apiserver_envs.yaml rename to component/tests/golden/apiserver/appcat/appcat/apiserver/10_apiserver_envs.yaml diff --git a/tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_api_server.yaml b/component/tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_api_server.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_api_server.yaml rename to component/tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_api_server.yaml diff --git a/tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml b/component/tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml rename to component/tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml diff --git a/tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_binding.yaml b/component/tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_binding.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_binding.yaml rename to component/tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_binding.yaml diff --git a/tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_view.yaml b/component/tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_view.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_view.yaml rename to component/tests/golden/apiserver/appcat/appcat/apiserver/10_cluster_role_view.yaml diff --git a/tests/golden/apiserver/appcat/appcat/apiserver/20_service_account.yaml b/component/tests/golden/apiserver/appcat/appcat/apiserver/20_service_account.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/apiserver/20_service_account.yaml rename to component/tests/golden/apiserver/appcat/appcat/apiserver/20_service_account.yaml diff --git a/tests/golden/apiserver/appcat/appcat/apiserver/30_api_service.yaml b/component/tests/golden/apiserver/appcat/appcat/apiserver/30_api_service.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/apiserver/30_api_service.yaml rename to component/tests/golden/apiserver/appcat/appcat/apiserver/30_api_service.yaml diff --git a/tests/golden/apiserver/appcat/appcat/apiserver/30_deployment.yaml b/component/tests/golden/apiserver/appcat/appcat/apiserver/30_deployment.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/apiserver/30_deployment.yaml rename to component/tests/golden/apiserver/appcat/appcat/apiserver/30_deployment.yaml diff --git a/tests/golden/apiserver/appcat/appcat/apiserver/30_service.yaml b/component/tests/golden/apiserver/appcat/appcat/apiserver/30_service.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/apiserver/30_service.yaml rename to component/tests/golden/apiserver/appcat/appcat/apiserver/30_service.yaml diff --git a/tests/golden/apiserver/appcat/appcat/apiserver/31_api_certificate.yaml b/component/tests/golden/apiserver/appcat/appcat/apiserver/31_api_certificate.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/apiserver/31_api_certificate.yaml rename to component/tests/golden/apiserver/appcat/appcat/apiserver/31_api_certificate.yaml diff --git a/tests/golden/apiserver/appcat/appcat/apiserver/31_api_issuer.yaml b/component/tests/golden/apiserver/appcat/appcat/apiserver/31_api_issuer.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/apiserver/31_api_issuer.yaml rename to component/tests/golden/apiserver/appcat/appcat/apiserver/31_api_issuer.yaml diff --git a/tests/golden/apiserver/appcat/appcat/statefuleset-resize-controller.yaml b/component/tests/golden/apiserver/appcat/appcat/statefuleset-resize-controller.yaml similarity index 100% rename from tests/golden/apiserver/appcat/appcat/statefuleset-resize-controller.yaml rename to component/tests/golden/apiserver/appcat/appcat/statefuleset-resize-controller.yaml diff --git a/tests/golden/apiserver/appcat/apps/appcat.yaml b/component/tests/golden/apiserver/appcat/apps/appcat.yaml similarity index 100% rename from tests/golden/apiserver/appcat/apps/appcat.yaml rename to component/tests/golden/apiserver/appcat/apps/appcat.yaml diff --git a/tests/golden/cloudscale/appcat/appcat/10_appcat_billing_recording_rule.yaml b/component/tests/golden/cloudscale/appcat/appcat/10_appcat_billing_recording_rule.yaml similarity index 100% rename from tests/golden/cloudscale/appcat/appcat/10_appcat_billing_recording_rule.yaml rename to component/tests/golden/cloudscale/appcat/appcat/10_appcat_billing_recording_rule.yaml diff --git a/tests/golden/cloudscale/appcat/appcat/10_appcat_maintenance_recording_rule.yaml b/component/tests/golden/cloudscale/appcat/appcat/10_appcat_maintenance_recording_rule.yaml similarity index 100% rename from tests/golden/cloudscale/appcat/appcat/10_appcat_maintenance_recording_rule.yaml rename to component/tests/golden/cloudscale/appcat/appcat/10_appcat_maintenance_recording_rule.yaml diff --git a/tests/golden/cloudscale/appcat/appcat/10_appcat_namespace.yaml b/component/tests/golden/cloudscale/appcat/appcat/10_appcat_namespace.yaml similarity index 100% rename from tests/golden/cloudscale/appcat/appcat/10_appcat_namespace.yaml rename to component/tests/golden/cloudscale/appcat/appcat/10_appcat_namespace.yaml diff --git a/tests/golden/cloudscale/appcat/appcat/10_clusterrole_services_read.yaml b/component/tests/golden/cloudscale/appcat/appcat/10_clusterrole_services_read.yaml similarity index 100% rename from tests/golden/cloudscale/appcat/appcat/10_clusterrole_services_read.yaml rename to component/tests/golden/cloudscale/appcat/appcat/10_clusterrole_services_read.yaml diff --git a/tests/golden/cloudscale/appcat/appcat/10_clusterrole_view.yaml b/component/tests/golden/cloudscale/appcat/appcat/10_clusterrole_view.yaml similarity index 100% rename from tests/golden/cloudscale/appcat/appcat/10_clusterrole_view.yaml rename to component/tests/golden/cloudscale/appcat/appcat/10_clusterrole_view.yaml diff --git a/tests/golden/cloudscale/appcat/appcat/10_provider_cloudscale.yaml b/component/tests/golden/cloudscale/appcat/appcat/10_provider_cloudscale.yaml similarity index 100% rename from tests/golden/cloudscale/appcat/appcat/10_provider_cloudscale.yaml rename to component/tests/golden/cloudscale/appcat/appcat/10_provider_cloudscale.yaml diff --git a/tests/golden/cloudscale/appcat/appcat/10_provider_kubernetes.yaml b/component/tests/golden/cloudscale/appcat/appcat/10_provider_kubernetes.yaml similarity index 100% rename from tests/golden/cloudscale/appcat/appcat/10_provider_kubernetes.yaml rename to component/tests/golden/cloudscale/appcat/appcat/10_provider_kubernetes.yaml diff --git a/tests/golden/cloudscale/appcat/appcat/20_rbac_objectstorage.yaml b/component/tests/golden/cloudscale/appcat/appcat/20_rbac_objectstorage.yaml similarity index 100% rename from tests/golden/cloudscale/appcat/appcat/20_rbac_objectstorage.yaml rename to component/tests/golden/cloudscale/appcat/appcat/20_rbac_objectstorage.yaml diff --git a/tests/golden/cloudscale/appcat/appcat/20_xrd_objectstorage.yaml b/component/tests/golden/cloudscale/appcat/appcat/20_xrd_objectstorage.yaml similarity index 100% rename from tests/golden/cloudscale/appcat/appcat/20_xrd_objectstorage.yaml rename to component/tests/golden/cloudscale/appcat/appcat/20_xrd_objectstorage.yaml diff --git a/tests/golden/cloudscale/appcat/appcat/21_composition_objectstorage_cloudscale.yaml b/component/tests/golden/cloudscale/appcat/appcat/21_composition_objectstorage_cloudscale.yaml similarity index 100% rename from tests/golden/cloudscale/appcat/appcat/21_composition_objectstorage_cloudscale.yaml rename to component/tests/golden/cloudscale/appcat/appcat/21_composition_objectstorage_cloudscale.yaml diff --git a/tests/golden/cloudscale/appcat/appcat/statefuleset-resize-controller.yaml b/component/tests/golden/cloudscale/appcat/appcat/statefuleset-resize-controller.yaml similarity index 100% rename from tests/golden/cloudscale/appcat/appcat/statefuleset-resize-controller.yaml rename to component/tests/golden/cloudscale/appcat/appcat/statefuleset-resize-controller.yaml diff --git a/tests/golden/cloudscale/appcat/apps/appcat.yaml b/component/tests/golden/cloudscale/appcat/apps/appcat.yaml similarity index 100% rename from tests/golden/cloudscale/appcat/apps/appcat.yaml rename to component/tests/golden/cloudscale/appcat/apps/appcat.yaml diff --git a/tests/golden/controllers/appcat/appcat/10_appcat_billing_recording_rule.yaml b/component/tests/golden/controllers/appcat/appcat/10_appcat_billing_recording_rule.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/10_appcat_billing_recording_rule.yaml rename to component/tests/golden/controllers/appcat/appcat/10_appcat_billing_recording_rule.yaml diff --git a/tests/golden/controllers/appcat/appcat/10_appcat_maintenance_recording_rule.yaml b/component/tests/golden/controllers/appcat/appcat/10_appcat_maintenance_recording_rule.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/10_appcat_maintenance_recording_rule.yaml rename to component/tests/golden/controllers/appcat/appcat/10_appcat_maintenance_recording_rule.yaml diff --git a/tests/golden/controllers/appcat/appcat/10_appcat_namespace.yaml b/component/tests/golden/controllers/appcat/appcat/10_appcat_namespace.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/10_appcat_namespace.yaml rename to component/tests/golden/controllers/appcat/appcat/10_appcat_namespace.yaml diff --git a/tests/golden/controllers/appcat/appcat/10_clusterrole_finalizer.yaml b/component/tests/golden/controllers/appcat/appcat/10_clusterrole_finalizer.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/10_clusterrole_finalizer.yaml rename to component/tests/golden/controllers/appcat/appcat/10_clusterrole_finalizer.yaml diff --git a/tests/golden/controllers/appcat/appcat/10_clusterrole_services_read.yaml b/component/tests/golden/controllers/appcat/appcat/10_clusterrole_services_read.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/10_clusterrole_services_read.yaml rename to component/tests/golden/controllers/appcat/appcat/10_clusterrole_services_read.yaml diff --git a/tests/golden/controllers/appcat/appcat/10_clusterrole_view.yaml b/component/tests/golden/controllers/appcat/appcat/10_clusterrole_view.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/10_clusterrole_view.yaml rename to component/tests/golden/controllers/appcat/appcat/10_clusterrole_view.yaml diff --git a/tests/golden/controllers/appcat/appcat/controllers/appcat/10_cluster_role.yaml b/component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_cluster_role.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/controllers/appcat/10_cluster_role.yaml rename to component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_cluster_role.yaml diff --git a/tests/golden/controllers/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml b/component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml rename to component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml diff --git a/tests/golden/controllers/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml b/component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml rename to component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml diff --git a/tests/golden/controllers/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml b/component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml rename to component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml diff --git a/tests/golden/controllers/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml b/component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml rename to component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml diff --git a/tests/golden/controllers/appcat/appcat/controllers/appcat/10_role_leader_election.yaml b/component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_role_leader_election.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/controllers/appcat/10_role_leader_election.yaml rename to component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_role_leader_election.yaml diff --git a/tests/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml b/component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml rename to component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml diff --git a/tests/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml b/component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml rename to component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml diff --git a/tests/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_service.yaml b/component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_service.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_service.yaml rename to component/tests/golden/controllers/appcat/appcat/controllers/appcat/10_webhook_service.yaml diff --git a/tests/golden/controllers/appcat/appcat/controllers/appcat/20_service_account.yaml b/component/tests/golden/controllers/appcat/appcat/controllers/appcat/20_service_account.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/controllers/appcat/20_service_account.yaml rename to component/tests/golden/controllers/appcat/appcat/controllers/appcat/20_service_account.yaml diff --git a/tests/golden/controllers/appcat/appcat/controllers/appcat/30_deployment.yaml b/component/tests/golden/controllers/appcat/appcat/controllers/appcat/30_deployment.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/controllers/appcat/30_deployment.yaml rename to component/tests/golden/controllers/appcat/appcat/controllers/appcat/30_deployment.yaml diff --git a/tests/golden/controllers/appcat/appcat/statefuleset-resize-controller.yaml b/component/tests/golden/controllers/appcat/appcat/statefuleset-resize-controller.yaml similarity index 100% rename from tests/golden/controllers/appcat/appcat/statefuleset-resize-controller.yaml rename to component/tests/golden/controllers/appcat/appcat/statefuleset-resize-controller.yaml diff --git a/tests/golden/controllers/appcat/apps/appcat.yaml b/component/tests/golden/controllers/appcat/apps/appcat.yaml similarity index 100% rename from tests/golden/controllers/appcat/apps/appcat.yaml rename to component/tests/golden/controllers/appcat/apps/appcat.yaml diff --git a/tests/golden/defaults/appcat/appcat/10_appcat_billing_recording_rule.yaml b/component/tests/golden/defaults/appcat/appcat/10_appcat_billing_recording_rule.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/10_appcat_billing_recording_rule.yaml rename to component/tests/golden/defaults/appcat/appcat/10_appcat_billing_recording_rule.yaml diff --git a/tests/golden/defaults/appcat/appcat/10_appcat_maintenance_recording_rule.yaml b/component/tests/golden/defaults/appcat/appcat/10_appcat_maintenance_recording_rule.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/10_appcat_maintenance_recording_rule.yaml rename to component/tests/golden/defaults/appcat/appcat/10_appcat_maintenance_recording_rule.yaml diff --git a/tests/golden/defaults/appcat/appcat/10_appcat_namespace.yaml b/component/tests/golden/defaults/appcat/appcat/10_appcat_namespace.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/10_appcat_namespace.yaml rename to component/tests/golden/defaults/appcat/appcat/10_appcat_namespace.yaml diff --git a/tests/golden/defaults/appcat/appcat/10_clusterrole_services_read.yaml b/component/tests/golden/defaults/appcat/appcat/10_clusterrole_services_read.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/10_clusterrole_services_read.yaml rename to component/tests/golden/defaults/appcat/appcat/10_clusterrole_services_read.yaml diff --git a/tests/golden/defaults/appcat/appcat/10_clusterrole_view.yaml b/component/tests/golden/defaults/appcat/appcat/10_clusterrole_view.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/10_clusterrole_view.yaml rename to component/tests/golden/defaults/appcat/appcat/10_clusterrole_view.yaml diff --git a/tests/golden/defaults/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml b/component/tests/golden/defaults/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml rename to component/tests/golden/defaults/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml diff --git a/tests/golden/defaults/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml b/component/tests/golden/defaults/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml rename to component/tests/golden/defaults/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml diff --git a/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml b/component/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml rename to component/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml diff --git a/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml b/component/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml rename to component/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml diff --git a/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml b/component/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml rename to component/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml diff --git a/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml b/component/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml rename to component/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml diff --git a/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml b/component/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml rename to component/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml diff --git a/tests/golden/defaults/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml b/component/tests/golden/defaults/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml rename to component/tests/golden/defaults/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml diff --git a/tests/golden/defaults/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml b/component/tests/golden/defaults/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml rename to component/tests/golden/defaults/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml diff --git a/tests/golden/defaults/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml b/component/tests/golden/defaults/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml rename to component/tests/golden/defaults/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml diff --git a/tests/golden/defaults/appcat/appcat/statefuleset-resize-controller.yaml b/component/tests/golden/defaults/appcat/appcat/statefuleset-resize-controller.yaml similarity index 100% rename from tests/golden/defaults/appcat/appcat/statefuleset-resize-controller.yaml rename to component/tests/golden/defaults/appcat/appcat/statefuleset-resize-controller.yaml diff --git a/tests/golden/defaults/appcat/apps/appcat.yaml b/component/tests/golden/defaults/appcat/apps/appcat.yaml similarity index 100% rename from tests/golden/defaults/appcat/apps/appcat.yaml rename to component/tests/golden/defaults/appcat/apps/appcat.yaml diff --git a/tests/golden/exoscale/appcat/appcat/10_appcat_billing_recording_rule.yaml b/component/tests/golden/exoscale/appcat/appcat/10_appcat_billing_recording_rule.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/10_appcat_billing_recording_rule.yaml rename to component/tests/golden/exoscale/appcat/appcat/10_appcat_billing_recording_rule.yaml diff --git a/tests/golden/exoscale/appcat/appcat/10_appcat_maintenance_recording_rule.yaml b/component/tests/golden/exoscale/appcat/appcat/10_appcat_maintenance_recording_rule.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/10_appcat_maintenance_recording_rule.yaml rename to component/tests/golden/exoscale/appcat/appcat/10_appcat_maintenance_recording_rule.yaml diff --git a/tests/golden/exoscale/appcat/appcat/10_appcat_namespace.yaml b/component/tests/golden/exoscale/appcat/appcat/10_appcat_namespace.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/10_appcat_namespace.yaml rename to component/tests/golden/exoscale/appcat/appcat/10_appcat_namespace.yaml diff --git a/tests/golden/exoscale/appcat/appcat/10_clusterrole_services_read.yaml b/component/tests/golden/exoscale/appcat/appcat/10_clusterrole_services_read.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/10_clusterrole_services_read.yaml rename to component/tests/golden/exoscale/appcat/appcat/10_clusterrole_services_read.yaml diff --git a/tests/golden/exoscale/appcat/appcat/10_clusterrole_view.yaml b/component/tests/golden/exoscale/appcat/appcat/10_clusterrole_view.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/10_clusterrole_view.yaml rename to component/tests/golden/exoscale/appcat/appcat/10_clusterrole_view.yaml diff --git a/tests/golden/exoscale/appcat/appcat/10_provider_exoscale.yaml b/component/tests/golden/exoscale/appcat/appcat/10_provider_exoscale.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/10_provider_exoscale.yaml rename to component/tests/golden/exoscale/appcat/appcat/10_provider_exoscale.yaml diff --git a/tests/golden/exoscale/appcat/appcat/10_provider_kubernetes.yaml b/component/tests/golden/exoscale/appcat/appcat/10_provider_kubernetes.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/10_provider_kubernetes.yaml rename to component/tests/golden/exoscale/appcat/appcat/10_provider_kubernetes.yaml diff --git a/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_kafka.yaml b/component/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_kafka.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_kafka.yaml rename to component/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_kafka.yaml diff --git a/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_mysql.yaml b/component/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_mysql.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_mysql.yaml rename to component/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_mysql.yaml diff --git a/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_opensearch.yaml b/component/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_opensearch.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_opensearch.yaml rename to component/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_opensearch.yaml diff --git a/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_postgres.yaml b/component/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_postgres.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_postgres.yaml rename to component/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_postgres.yaml diff --git a/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_redis.yaml b/component/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_redis.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_redis.yaml rename to component/tests/golden/exoscale/appcat/appcat/20_rbac_exoscale_redis.yaml diff --git a/tests/golden/exoscale/appcat/appcat/20_rbac_objectstorage.yaml b/component/tests/golden/exoscale/appcat/appcat/20_rbac_objectstorage.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/20_rbac_objectstorage.yaml rename to component/tests/golden/exoscale/appcat/appcat/20_rbac_objectstorage.yaml diff --git a/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_kafka.yaml b/component/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_kafka.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_kafka.yaml rename to component/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_kafka.yaml diff --git a/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_mysql.yaml b/component/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_mysql.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_mysql.yaml rename to component/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_mysql.yaml diff --git a/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_opensearch.yaml b/component/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_opensearch.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_opensearch.yaml rename to component/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_opensearch.yaml diff --git a/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_postgres.yaml b/component/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_postgres.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_postgres.yaml rename to component/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_postgres.yaml diff --git a/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_redis.yaml b/component/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_redis.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_redis.yaml rename to component/tests/golden/exoscale/appcat/appcat/20_xrd_exoscale_redis.yaml diff --git a/tests/golden/exoscale/appcat/appcat/20_xrd_objectstorage.yaml b/component/tests/golden/exoscale/appcat/appcat/20_xrd_objectstorage.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/20_xrd_objectstorage.yaml rename to component/tests/golden/exoscale/appcat/appcat/20_xrd_objectstorage.yaml diff --git a/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_kafka.yaml b/component/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_kafka.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/21_composition_exoscale_kafka.yaml rename to component/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_kafka.yaml diff --git a/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_mysql.yaml b/component/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_mysql.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/21_composition_exoscale_mysql.yaml rename to component/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_mysql.yaml diff --git a/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_opensearch.yaml b/component/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_opensearch.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/21_composition_exoscale_opensearch.yaml rename to component/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_opensearch.yaml diff --git a/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_postgres.yaml b/component/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_postgres.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/21_composition_exoscale_postgres.yaml rename to component/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_postgres.yaml diff --git a/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_redis.yaml b/component/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_redis.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/21_composition_exoscale_redis.yaml rename to component/tests/golden/exoscale/appcat/appcat/21_composition_exoscale_redis.yaml diff --git a/tests/golden/exoscale/appcat/appcat/21_composition_objectstorage_exoscale.yaml b/component/tests/golden/exoscale/appcat/appcat/21_composition_objectstorage_exoscale.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/21_composition_objectstorage_exoscale.yaml rename to component/tests/golden/exoscale/appcat/appcat/21_composition_objectstorage_exoscale.yaml diff --git a/tests/golden/exoscale/appcat/appcat/statefuleset-resize-controller.yaml b/component/tests/golden/exoscale/appcat/appcat/statefuleset-resize-controller.yaml similarity index 100% rename from tests/golden/exoscale/appcat/appcat/statefuleset-resize-controller.yaml rename to component/tests/golden/exoscale/appcat/appcat/statefuleset-resize-controller.yaml diff --git a/tests/golden/exoscale/appcat/apps/appcat.yaml b/component/tests/golden/exoscale/appcat/apps/appcat.yaml similarity index 100% rename from tests/golden/exoscale/appcat/apps/appcat.yaml rename to component/tests/golden/exoscale/appcat/apps/appcat.yaml diff --git a/tests/golden/minio/appcat/appcat/10_appcat_billing_recording_rule.yaml b/component/tests/golden/minio/appcat/appcat/10_appcat_billing_recording_rule.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/10_appcat_billing_recording_rule.yaml rename to component/tests/golden/minio/appcat/appcat/10_appcat_billing_recording_rule.yaml diff --git a/tests/golden/minio/appcat/appcat/10_appcat_maintenance_recording_rule.yaml b/component/tests/golden/minio/appcat/appcat/10_appcat_maintenance_recording_rule.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/10_appcat_maintenance_recording_rule.yaml rename to component/tests/golden/minio/appcat/appcat/10_appcat_maintenance_recording_rule.yaml diff --git a/tests/golden/minio/appcat/appcat/10_appcat_namespace.yaml b/component/tests/golden/minio/appcat/appcat/10_appcat_namespace.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/10_appcat_namespace.yaml rename to component/tests/golden/minio/appcat/appcat/10_appcat_namespace.yaml diff --git a/tests/golden/minio/appcat/appcat/10_clusterrole_services_read.yaml b/component/tests/golden/minio/appcat/appcat/10_clusterrole_services_read.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/10_clusterrole_services_read.yaml rename to component/tests/golden/minio/appcat/appcat/10_clusterrole_services_read.yaml diff --git a/tests/golden/minio/appcat/appcat/10_clusterrole_view.yaml b/component/tests/golden/minio/appcat/appcat/10_clusterrole_view.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/10_clusterrole_view.yaml rename to component/tests/golden/minio/appcat/appcat/10_clusterrole_view.yaml diff --git a/tests/golden/minio/appcat/appcat/10_mailgun_secret.yaml b/component/tests/golden/minio/appcat/appcat/10_mailgun_secret.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/10_mailgun_secret.yaml rename to component/tests/golden/minio/appcat/appcat/10_mailgun_secret.yaml diff --git a/tests/golden/minio/appcat/appcat/10_namespace_vshn_control.yaml b/component/tests/golden/minio/appcat/appcat/10_namespace_vshn_control.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/10_namespace_vshn_control.yaml rename to component/tests/golden/minio/appcat/appcat/10_namespace_vshn_control.yaml diff --git a/tests/golden/minio/appcat/appcat/10_provider_helm.yaml b/component/tests/golden/minio/appcat/appcat/10_provider_helm.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/10_provider_helm.yaml rename to component/tests/golden/minio/appcat/appcat/10_provider_helm.yaml diff --git a/tests/golden/minio/appcat/appcat/10_provider_kubernetes.yaml b/component/tests/golden/minio/appcat/appcat/10_provider_kubernetes.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/10_provider_kubernetes.yaml rename to component/tests/golden/minio/appcat/appcat/10_provider_kubernetes.yaml diff --git a/tests/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role.yaml b/component/tests/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role.yaml rename to component/tests/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role.yaml diff --git a/tests/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role_binding.yaml b/component/tests/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role_binding.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role_binding.yaml rename to component/tests/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role_binding.yaml diff --git a/tests/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_sa.yaml b/component/tests/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_sa.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_sa.yaml rename to component/tests/golden/minio/appcat/appcat/10_rbac_helm_service_maintenance_sa.yaml diff --git a/tests/golden/minio/appcat/appcat/20_rbac_vshn_minio.yaml b/component/tests/golden/minio/appcat/appcat/20_rbac_vshn_minio.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/20_rbac_vshn_minio.yaml rename to component/tests/golden/minio/appcat/appcat/20_rbac_vshn_minio.yaml diff --git a/tests/golden/minio/appcat/appcat/20_xrd_vshn_minio.yaml b/component/tests/golden/minio/appcat/appcat/20_xrd_vshn_minio.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/20_xrd_vshn_minio.yaml rename to component/tests/golden/minio/appcat/appcat/20_xrd_vshn_minio.yaml diff --git a/tests/golden/minio/appcat/appcat/21_composition_vshn_minio.yaml b/component/tests/golden/minio/appcat/appcat/21_composition_vshn_minio.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/21_composition_vshn_minio.yaml rename to component/tests/golden/minio/appcat/appcat/21_composition_vshn_minio.yaml diff --git a/tests/golden/minio/appcat/appcat/apiserver/10_apiserver_envs.yaml b/component/tests/golden/minio/appcat/appcat/apiserver/10_apiserver_envs.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/apiserver/10_apiserver_envs.yaml rename to component/tests/golden/minio/appcat/appcat/apiserver/10_apiserver_envs.yaml diff --git a/tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_api_server.yaml b/component/tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_api_server.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_api_server.yaml rename to component/tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_api_server.yaml diff --git a/tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml b/component/tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml rename to component/tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml diff --git a/tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_binding.yaml b/component/tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_binding.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_binding.yaml rename to component/tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_binding.yaml diff --git a/tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_view.yaml b/component/tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_view.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_view.yaml rename to component/tests/golden/minio/appcat/appcat/apiserver/10_cluster_role_view.yaml diff --git a/tests/golden/minio/appcat/appcat/apiserver/20_service_account.yaml b/component/tests/golden/minio/appcat/appcat/apiserver/20_service_account.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/apiserver/20_service_account.yaml rename to component/tests/golden/minio/appcat/appcat/apiserver/20_service_account.yaml diff --git a/tests/golden/minio/appcat/appcat/apiserver/30_api_service.yaml b/component/tests/golden/minio/appcat/appcat/apiserver/30_api_service.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/apiserver/30_api_service.yaml rename to component/tests/golden/minio/appcat/appcat/apiserver/30_api_service.yaml diff --git a/tests/golden/minio/appcat/appcat/apiserver/30_deployment.yaml b/component/tests/golden/minio/appcat/appcat/apiserver/30_deployment.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/apiserver/30_deployment.yaml rename to component/tests/golden/minio/appcat/appcat/apiserver/30_deployment.yaml diff --git a/tests/golden/minio/appcat/appcat/apiserver/30_service.yaml b/component/tests/golden/minio/appcat/appcat/apiserver/30_service.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/apiserver/30_service.yaml rename to component/tests/golden/minio/appcat/appcat/apiserver/30_service.yaml diff --git a/tests/golden/minio/appcat/appcat/apiserver/31_api_certificate.yaml b/component/tests/golden/minio/appcat/appcat/apiserver/31_api_certificate.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/apiserver/31_api_certificate.yaml rename to component/tests/golden/minio/appcat/appcat/apiserver/31_api_certificate.yaml diff --git a/tests/golden/minio/appcat/appcat/apiserver/31_api_issuer.yaml b/component/tests/golden/minio/appcat/appcat/apiserver/31_api_issuer.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/apiserver/31_api_issuer.yaml rename to component/tests/golden/minio/appcat/appcat/apiserver/31_api_issuer.yaml diff --git a/tests/golden/minio/appcat/appcat/controllers/appcat/10_cluster_role.yaml b/component/tests/golden/minio/appcat/appcat/controllers/appcat/10_cluster_role.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/controllers/appcat/10_cluster_role.yaml rename to component/tests/golden/minio/appcat/appcat/controllers/appcat/10_cluster_role.yaml diff --git a/tests/golden/minio/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml b/component/tests/golden/minio/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml rename to component/tests/golden/minio/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml diff --git a/tests/golden/minio/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml b/component/tests/golden/minio/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml rename to component/tests/golden/minio/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml diff --git a/tests/golden/minio/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml b/component/tests/golden/minio/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml rename to component/tests/golden/minio/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml diff --git a/tests/golden/minio/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml b/component/tests/golden/minio/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml rename to component/tests/golden/minio/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml diff --git a/tests/golden/minio/appcat/appcat/controllers/appcat/10_role_leader_election.yaml b/component/tests/golden/minio/appcat/appcat/controllers/appcat/10_role_leader_election.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/controllers/appcat/10_role_leader_election.yaml rename to component/tests/golden/minio/appcat/appcat/controllers/appcat/10_role_leader_election.yaml diff --git a/tests/golden/minio/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml b/component/tests/golden/minio/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml rename to component/tests/golden/minio/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml diff --git a/tests/golden/minio/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml b/component/tests/golden/minio/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml rename to component/tests/golden/minio/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml diff --git a/tests/golden/minio/appcat/appcat/controllers/appcat/10_webhook_service.yaml b/component/tests/golden/minio/appcat/appcat/controllers/appcat/10_webhook_service.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/controllers/appcat/10_webhook_service.yaml rename to component/tests/golden/minio/appcat/appcat/controllers/appcat/10_webhook_service.yaml diff --git a/tests/golden/minio/appcat/appcat/controllers/appcat/20_service_account.yaml b/component/tests/golden/minio/appcat/appcat/controllers/appcat/20_service_account.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/controllers/appcat/20_service_account.yaml rename to component/tests/golden/minio/appcat/appcat/controllers/appcat/20_service_account.yaml diff --git a/tests/golden/minio/appcat/appcat/controllers/appcat/30_deployment.yaml b/component/tests/golden/minio/appcat/appcat/controllers/appcat/30_deployment.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/controllers/appcat/30_deployment.yaml rename to component/tests/golden/minio/appcat/appcat/controllers/appcat/30_deployment.yaml diff --git a/tests/golden/minio/appcat/appcat/sla_reporter/01_cronjob.yaml b/component/tests/golden/minio/appcat/appcat/sla_reporter/01_cronjob.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/sla_reporter/01_cronjob.yaml rename to component/tests/golden/minio/appcat/appcat/sla_reporter/01_cronjob.yaml diff --git a/tests/golden/minio/appcat/appcat/sla_reporter/02_object_bucket.yaml b/component/tests/golden/minio/appcat/appcat/sla_reporter/02_object_bucket.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/sla_reporter/02_object_bucket.yaml rename to component/tests/golden/minio/appcat/appcat/sla_reporter/02_object_bucket.yaml diff --git a/tests/golden/minio/appcat/appcat/sla_reporter/03_network_policy.yaml b/component/tests/golden/minio/appcat/appcat/sla_reporter/03_network_policy.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/sla_reporter/03_network_policy.yaml rename to component/tests/golden/minio/appcat/appcat/sla_reporter/03_network_policy.yaml diff --git a/tests/golden/minio/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml b/component/tests/golden/minio/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml rename to component/tests/golden/minio/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml diff --git a/tests/golden/minio/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml b/component/tests/golden/minio/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml rename to component/tests/golden/minio/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml diff --git a/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml b/component/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml rename to component/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml diff --git a/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml b/component/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml rename to component/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml diff --git a/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml b/component/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml rename to component/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml diff --git a/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml b/component/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml rename to component/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml diff --git a/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml b/component/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml rename to component/tests/golden/minio/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml diff --git a/tests/golden/minio/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml b/component/tests/golden/minio/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml rename to component/tests/golden/minio/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml diff --git a/tests/golden/minio/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml b/component/tests/golden/minio/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml rename to component/tests/golden/minio/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml diff --git a/tests/golden/minio/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml b/component/tests/golden/minio/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml rename to component/tests/golden/minio/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml diff --git a/tests/golden/minio/appcat/appcat/statefuleset-resize-controller.yaml b/component/tests/golden/minio/appcat/appcat/statefuleset-resize-controller.yaml similarity index 100% rename from tests/golden/minio/appcat/appcat/statefuleset-resize-controller.yaml rename to component/tests/golden/minio/appcat/appcat/statefuleset-resize-controller.yaml diff --git a/tests/golden/minio/appcat/apps/appcat.yaml b/component/tests/golden/minio/appcat/apps/appcat.yaml similarity index 100% rename from tests/golden/minio/appcat/apps/appcat.yaml rename to component/tests/golden/minio/appcat/apps/appcat.yaml diff --git a/tests/golden/openshift/appcat/appcat/10_appcat_billing_recording_rule.yaml b/component/tests/golden/openshift/appcat/appcat/10_appcat_billing_recording_rule.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/10_appcat_billing_recording_rule.yaml rename to component/tests/golden/openshift/appcat/appcat/10_appcat_billing_recording_rule.yaml diff --git a/tests/golden/openshift/appcat/appcat/10_appcat_maintenance_recording_rule.yaml b/component/tests/golden/openshift/appcat/appcat/10_appcat_maintenance_recording_rule.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/10_appcat_maintenance_recording_rule.yaml rename to component/tests/golden/openshift/appcat/appcat/10_appcat_maintenance_recording_rule.yaml diff --git a/tests/golden/openshift/appcat/appcat/10_appcat_namespace.yaml b/component/tests/golden/openshift/appcat/appcat/10_appcat_namespace.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/10_appcat_namespace.yaml rename to component/tests/golden/openshift/appcat/appcat/10_appcat_namespace.yaml diff --git a/tests/golden/openshift/appcat/appcat/10_clusterrole_finalizer.yaml b/component/tests/golden/openshift/appcat/appcat/10_clusterrole_finalizer.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/10_clusterrole_finalizer.yaml rename to component/tests/golden/openshift/appcat/appcat/10_clusterrole_finalizer.yaml diff --git a/tests/golden/openshift/appcat/appcat/10_clusterrole_services_read.yaml b/component/tests/golden/openshift/appcat/appcat/10_clusterrole_services_read.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/10_clusterrole_services_read.yaml rename to component/tests/golden/openshift/appcat/appcat/10_clusterrole_services_read.yaml diff --git a/tests/golden/openshift/appcat/appcat/10_clusterrole_view.yaml b/component/tests/golden/openshift/appcat/appcat/10_clusterrole_view.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/10_clusterrole_view.yaml rename to component/tests/golden/openshift/appcat/appcat/10_clusterrole_view.yaml diff --git a/tests/golden/openshift/appcat/appcat/10_provider_cloudscale.yaml b/component/tests/golden/openshift/appcat/appcat/10_provider_cloudscale.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/10_provider_cloudscale.yaml rename to component/tests/golden/openshift/appcat/appcat/10_provider_cloudscale.yaml diff --git a/tests/golden/openshift/appcat/appcat/10_provider_exoscale.yaml b/component/tests/golden/openshift/appcat/appcat/10_provider_exoscale.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/10_provider_exoscale.yaml rename to component/tests/golden/openshift/appcat/appcat/10_provider_exoscale.yaml diff --git a/tests/golden/openshift/appcat/appcat/10_provider_kubernetes.yaml b/component/tests/golden/openshift/appcat/appcat/10_provider_kubernetes.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/10_provider_kubernetes.yaml rename to component/tests/golden/openshift/appcat/appcat/10_provider_kubernetes.yaml diff --git a/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_kafka.yaml b/component/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_kafka.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/20_rbac_exoscale_kafka.yaml rename to component/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_kafka.yaml diff --git a/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_mysql.yaml b/component/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_mysql.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/20_rbac_exoscale_mysql.yaml rename to component/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_mysql.yaml diff --git a/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_opensearch.yaml b/component/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_opensearch.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/20_rbac_exoscale_opensearch.yaml rename to component/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_opensearch.yaml diff --git a/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_postgres.yaml b/component/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_postgres.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/20_rbac_exoscale_postgres.yaml rename to component/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_postgres.yaml diff --git a/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_redis.yaml b/component/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_redis.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/20_rbac_exoscale_redis.yaml rename to component/tests/golden/openshift/appcat/appcat/20_rbac_exoscale_redis.yaml diff --git a/tests/golden/openshift/appcat/appcat/20_rbac_objectstorage.yaml b/component/tests/golden/openshift/appcat/appcat/20_rbac_objectstorage.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/20_rbac_objectstorage.yaml rename to component/tests/golden/openshift/appcat/appcat/20_rbac_objectstorage.yaml diff --git a/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_kafka.yaml b/component/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_kafka.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/20_xrd_exoscale_kafka.yaml rename to component/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_kafka.yaml diff --git a/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_mysql.yaml b/component/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_mysql.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/20_xrd_exoscale_mysql.yaml rename to component/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_mysql.yaml diff --git a/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_opensearch.yaml b/component/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_opensearch.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/20_xrd_exoscale_opensearch.yaml rename to component/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_opensearch.yaml diff --git a/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_postgres.yaml b/component/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_postgres.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/20_xrd_exoscale_postgres.yaml rename to component/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_postgres.yaml diff --git a/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_redis.yaml b/component/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_redis.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/20_xrd_exoscale_redis.yaml rename to component/tests/golden/openshift/appcat/appcat/20_xrd_exoscale_redis.yaml diff --git a/tests/golden/openshift/appcat/appcat/20_xrd_objectstorage.yaml b/component/tests/golden/openshift/appcat/appcat/20_xrd_objectstorage.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/20_xrd_objectstorage.yaml rename to component/tests/golden/openshift/appcat/appcat/20_xrd_objectstorage.yaml diff --git a/tests/golden/openshift/appcat/appcat/21_composition_exoscale_kafka.yaml b/component/tests/golden/openshift/appcat/appcat/21_composition_exoscale_kafka.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/21_composition_exoscale_kafka.yaml rename to component/tests/golden/openshift/appcat/appcat/21_composition_exoscale_kafka.yaml diff --git a/tests/golden/openshift/appcat/appcat/21_composition_exoscale_mysql.yaml b/component/tests/golden/openshift/appcat/appcat/21_composition_exoscale_mysql.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/21_composition_exoscale_mysql.yaml rename to component/tests/golden/openshift/appcat/appcat/21_composition_exoscale_mysql.yaml diff --git a/tests/golden/openshift/appcat/appcat/21_composition_exoscale_opensearch.yaml b/component/tests/golden/openshift/appcat/appcat/21_composition_exoscale_opensearch.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/21_composition_exoscale_opensearch.yaml rename to component/tests/golden/openshift/appcat/appcat/21_composition_exoscale_opensearch.yaml diff --git a/tests/golden/openshift/appcat/appcat/21_composition_exoscale_postgres.yaml b/component/tests/golden/openshift/appcat/appcat/21_composition_exoscale_postgres.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/21_composition_exoscale_postgres.yaml rename to component/tests/golden/openshift/appcat/appcat/21_composition_exoscale_postgres.yaml diff --git a/tests/golden/openshift/appcat/appcat/21_composition_exoscale_redis.yaml b/component/tests/golden/openshift/appcat/appcat/21_composition_exoscale_redis.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/21_composition_exoscale_redis.yaml rename to component/tests/golden/openshift/appcat/appcat/21_composition_exoscale_redis.yaml diff --git a/tests/golden/openshift/appcat/appcat/21_composition_objectstorage_exoscale.yaml b/component/tests/golden/openshift/appcat/appcat/21_composition_objectstorage_exoscale.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/21_composition_objectstorage_exoscale.yaml rename to component/tests/golden/openshift/appcat/appcat/21_composition_objectstorage_exoscale.yaml diff --git a/tests/golden/openshift/appcat/appcat/21_openshift_template_kafka_exoscale.yaml b/component/tests/golden/openshift/appcat/appcat/21_openshift_template_kafka_exoscale.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/21_openshift_template_kafka_exoscale.yaml rename to component/tests/golden/openshift/appcat/appcat/21_openshift_template_kafka_exoscale.yaml diff --git a/tests/golden/openshift/appcat/appcat/21_openshift_template_mysql_exoscale.yaml b/component/tests/golden/openshift/appcat/appcat/21_openshift_template_mysql_exoscale.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/21_openshift_template_mysql_exoscale.yaml rename to component/tests/golden/openshift/appcat/appcat/21_openshift_template_mysql_exoscale.yaml diff --git a/tests/golden/openshift/appcat/appcat/21_openshift_template_opensearch_exoscale.yaml b/component/tests/golden/openshift/appcat/appcat/21_openshift_template_opensearch_exoscale.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/21_openshift_template_opensearch_exoscale.yaml rename to component/tests/golden/openshift/appcat/appcat/21_openshift_template_opensearch_exoscale.yaml diff --git a/tests/golden/openshift/appcat/appcat/21_openshift_template_postgresql_exoscale.yaml b/component/tests/golden/openshift/appcat/appcat/21_openshift_template_postgresql_exoscale.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/21_openshift_template_postgresql_exoscale.yaml rename to component/tests/golden/openshift/appcat/appcat/21_openshift_template_postgresql_exoscale.yaml diff --git a/tests/golden/openshift/appcat/appcat/21_openshift_template_redis_exoscale.yaml b/component/tests/golden/openshift/appcat/appcat/21_openshift_template_redis_exoscale.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/21_openshift_template_redis_exoscale.yaml rename to component/tests/golden/openshift/appcat/appcat/21_openshift_template_redis_exoscale.yaml diff --git a/tests/golden/openshift/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml b/component/tests/golden/openshift/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml rename to component/tests/golden/openshift/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml diff --git a/tests/golden/openshift/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml b/component/tests/golden/openshift/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml rename to component/tests/golden/openshift/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml diff --git a/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml b/component/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml rename to component/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml diff --git a/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml b/component/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml rename to component/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml diff --git a/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml b/component/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml rename to component/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml diff --git a/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml b/component/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml rename to component/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml diff --git a/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml b/component/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml rename to component/tests/golden/openshift/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml diff --git a/tests/golden/openshift/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml b/component/tests/golden/openshift/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml rename to component/tests/golden/openshift/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml diff --git a/tests/golden/openshift/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml b/component/tests/golden/openshift/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml rename to component/tests/golden/openshift/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml diff --git a/tests/golden/openshift/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml b/component/tests/golden/openshift/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml rename to component/tests/golden/openshift/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml diff --git a/tests/golden/openshift/appcat/appcat/statefuleset-resize-controller.yaml b/component/tests/golden/openshift/appcat/appcat/statefuleset-resize-controller.yaml similarity index 100% rename from tests/golden/openshift/appcat/appcat/statefuleset-resize-controller.yaml rename to component/tests/golden/openshift/appcat/appcat/statefuleset-resize-controller.yaml diff --git a/tests/golden/openshift/appcat/apps/appcat.yaml b/component/tests/golden/openshift/appcat/apps/appcat.yaml similarity index 100% rename from tests/golden/openshift/appcat/apps/appcat.yaml rename to component/tests/golden/openshift/appcat/apps/appcat.yaml diff --git a/tests/golden/vshn/appcat/appcat/10_appcat_billing_recording_rule.yaml b/component/tests/golden/vshn/appcat/appcat/10_appcat_billing_recording_rule.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/10_appcat_billing_recording_rule.yaml rename to component/tests/golden/vshn/appcat/appcat/10_appcat_billing_recording_rule.yaml diff --git a/tests/golden/vshn/appcat/appcat/10_appcat_maintenance_recording_rule.yaml b/component/tests/golden/vshn/appcat/appcat/10_appcat_maintenance_recording_rule.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/10_appcat_maintenance_recording_rule.yaml rename to component/tests/golden/vshn/appcat/appcat/10_appcat_maintenance_recording_rule.yaml diff --git a/tests/golden/vshn/appcat/appcat/10_appcat_namespace.yaml b/component/tests/golden/vshn/appcat/appcat/10_appcat_namespace.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/10_appcat_namespace.yaml rename to component/tests/golden/vshn/appcat/appcat/10_appcat_namespace.yaml diff --git a/tests/golden/vshn/appcat/appcat/10_clusterrole_services_read.yaml b/component/tests/golden/vshn/appcat/appcat/10_clusterrole_services_read.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/10_clusterrole_services_read.yaml rename to component/tests/golden/vshn/appcat/appcat/10_clusterrole_services_read.yaml diff --git a/tests/golden/vshn/appcat/appcat/10_clusterrole_view.yaml b/component/tests/golden/vshn/appcat/appcat/10_clusterrole_view.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/10_clusterrole_view.yaml rename to component/tests/golden/vshn/appcat/appcat/10_clusterrole_view.yaml diff --git a/tests/golden/vshn/appcat/appcat/10_mailgun_secret.yaml b/component/tests/golden/vshn/appcat/appcat/10_mailgun_secret.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/10_mailgun_secret.yaml rename to component/tests/golden/vshn/appcat/appcat/10_mailgun_secret.yaml diff --git a/tests/golden/vshn/appcat/appcat/10_namespace_vshn_control.yaml b/component/tests/golden/vshn/appcat/appcat/10_namespace_vshn_control.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/10_namespace_vshn_control.yaml rename to component/tests/golden/vshn/appcat/appcat/10_namespace_vshn_control.yaml diff --git a/tests/golden/vshn/appcat/appcat/10_provider_helm.yaml b/component/tests/golden/vshn/appcat/appcat/10_provider_helm.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/10_provider_helm.yaml rename to component/tests/golden/vshn/appcat/appcat/10_provider_helm.yaml diff --git a/tests/golden/vshn/appcat/appcat/10_provider_kubernetes.yaml b/component/tests/golden/vshn/appcat/appcat/10_provider_kubernetes.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/10_provider_kubernetes.yaml rename to component/tests/golden/vshn/appcat/appcat/10_provider_kubernetes.yaml diff --git a/tests/golden/vshn/appcat/appcat/10_provider_minio.yaml b/component/tests/golden/vshn/appcat/appcat/10_provider_minio.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/10_provider_minio.yaml rename to component/tests/golden/vshn/appcat/appcat/10_provider_minio.yaml diff --git a/tests/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role.yaml b/component/tests/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role.yaml rename to component/tests/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role.yaml diff --git a/tests/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role_binding.yaml b/component/tests/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role_binding.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role_binding.yaml rename to component/tests/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_cluster_role_binding.yaml diff --git a/tests/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_sa.yaml b/component/tests/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_sa.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_sa.yaml rename to component/tests/golden/vshn/appcat/appcat/10_rbac_helm_service_maintenance_sa.yaml diff --git a/tests/golden/vshn/appcat/appcat/20_plans_vshn_postgresql.yaml b/component/tests/golden/vshn/appcat/appcat/20_plans_vshn_postgresql.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/20_plans_vshn_postgresql.yaml rename to component/tests/golden/vshn/appcat/appcat/20_plans_vshn_postgresql.yaml diff --git a/tests/golden/vshn/appcat/appcat/20_plans_vshn_redis.yaml b/component/tests/golden/vshn/appcat/appcat/20_plans_vshn_redis.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/20_plans_vshn_redis.yaml rename to component/tests/golden/vshn/appcat/appcat/20_plans_vshn_redis.yaml diff --git a/tests/golden/vshn/appcat/appcat/20_rbac_objectstorage.yaml b/component/tests/golden/vshn/appcat/appcat/20_rbac_objectstorage.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/20_rbac_objectstorage.yaml rename to component/tests/golden/vshn/appcat/appcat/20_rbac_objectstorage.yaml diff --git a/tests/golden/vshn/appcat/appcat/20_rbac_vshn_minio.yaml b/component/tests/golden/vshn/appcat/appcat/20_rbac_vshn_minio.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/20_rbac_vshn_minio.yaml rename to component/tests/golden/vshn/appcat/appcat/20_rbac_vshn_minio.yaml diff --git a/tests/golden/vshn/appcat/appcat/20_rbac_vshn_postgres.yaml b/component/tests/golden/vshn/appcat/appcat/20_rbac_vshn_postgres.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/20_rbac_vshn_postgres.yaml rename to component/tests/golden/vshn/appcat/appcat/20_rbac_vshn_postgres.yaml diff --git a/tests/golden/vshn/appcat/appcat/20_rbac_vshn_redis.yaml b/component/tests/golden/vshn/appcat/appcat/20_rbac_vshn_redis.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/20_rbac_vshn_redis.yaml rename to component/tests/golden/vshn/appcat/appcat/20_rbac_vshn_redis.yaml diff --git a/tests/golden/vshn/appcat/appcat/20_rbac_vshn_redis_resize.yaml b/component/tests/golden/vshn/appcat/appcat/20_rbac_vshn_redis_resize.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/20_rbac_vshn_redis_resize.yaml rename to component/tests/golden/vshn/appcat/appcat/20_rbac_vshn_redis_resize.yaml diff --git a/tests/golden/vshn/appcat/appcat/20_role_vshn_postgresrestore.yaml b/component/tests/golden/vshn/appcat/appcat/20_role_vshn_postgresrestore.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/20_role_vshn_postgresrestore.yaml rename to component/tests/golden/vshn/appcat/appcat/20_role_vshn_postgresrestore.yaml diff --git a/tests/golden/vshn/appcat/appcat/20_role_vshn_redisrestore.yaml b/component/tests/golden/vshn/appcat/appcat/20_role_vshn_redisrestore.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/20_role_vshn_redisrestore.yaml rename to component/tests/golden/vshn/appcat/appcat/20_role_vshn_redisrestore.yaml diff --git a/tests/golden/vshn/appcat/appcat/20_xrd_objectstorage.yaml b/component/tests/golden/vshn/appcat/appcat/20_xrd_objectstorage.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/20_xrd_objectstorage.yaml rename to component/tests/golden/vshn/appcat/appcat/20_xrd_objectstorage.yaml diff --git a/tests/golden/vshn/appcat/appcat/20_xrd_vshn_minio.yaml b/component/tests/golden/vshn/appcat/appcat/20_xrd_vshn_minio.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/20_xrd_vshn_minio.yaml rename to component/tests/golden/vshn/appcat/appcat/20_xrd_vshn_minio.yaml diff --git a/tests/golden/vshn/appcat/appcat/20_xrd_vshn_postgres.yaml b/component/tests/golden/vshn/appcat/appcat/20_xrd_vshn_postgres.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/20_xrd_vshn_postgres.yaml rename to component/tests/golden/vshn/appcat/appcat/20_xrd_vshn_postgres.yaml diff --git a/tests/golden/vshn/appcat/appcat/20_xrd_vshn_redis.yaml b/component/tests/golden/vshn/appcat/appcat/20_xrd_vshn_redis.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/20_xrd_vshn_redis.yaml rename to component/tests/golden/vshn/appcat/appcat/20_xrd_vshn_redis.yaml diff --git a/tests/golden/vshn/appcat/appcat/21_composition_objectstorage_minio.yaml b/component/tests/golden/vshn/appcat/appcat/21_composition_objectstorage_minio.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/21_composition_objectstorage_minio.yaml rename to component/tests/golden/vshn/appcat/appcat/21_composition_objectstorage_minio.yaml diff --git a/tests/golden/vshn/appcat/appcat/21_composition_vshn_minio.yaml b/component/tests/golden/vshn/appcat/appcat/21_composition_vshn_minio.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/21_composition_vshn_minio.yaml rename to component/tests/golden/vshn/appcat/appcat/21_composition_vshn_minio.yaml diff --git a/tests/golden/vshn/appcat/appcat/21_composition_vshn_postgres.yaml b/component/tests/golden/vshn/appcat/appcat/21_composition_vshn_postgres.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/21_composition_vshn_postgres.yaml rename to component/tests/golden/vshn/appcat/appcat/21_composition_vshn_postgres.yaml diff --git a/tests/golden/vshn/appcat/appcat/21_composition_vshn_postgresrestore.yaml b/component/tests/golden/vshn/appcat/appcat/21_composition_vshn_postgresrestore.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/21_composition_vshn_postgresrestore.yaml rename to component/tests/golden/vshn/appcat/appcat/21_composition_vshn_postgresrestore.yaml diff --git a/tests/golden/vshn/appcat/appcat/21_composition_vshn_redis.yaml b/component/tests/golden/vshn/appcat/appcat/21_composition_vshn_redis.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/21_composition_vshn_redis.yaml rename to component/tests/golden/vshn/appcat/appcat/21_composition_vshn_redis.yaml diff --git a/tests/golden/vshn/appcat/appcat/22_prom_rule_sla_postgres.yaml b/component/tests/golden/vshn/appcat/appcat/22_prom_rule_sla_postgres.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/22_prom_rule_sla_postgres.yaml rename to component/tests/golden/vshn/appcat/appcat/22_prom_rule_sla_postgres.yaml diff --git a/tests/golden/vshn/appcat/appcat/22_prom_rule_sla_redis.yaml b/component/tests/golden/vshn/appcat/appcat/22_prom_rule_sla_redis.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/22_prom_rule_sla_redis.yaml rename to component/tests/golden/vshn/appcat/appcat/22_prom_rule_sla_redis.yaml diff --git a/tests/golden/vshn/appcat/appcat/apiserver/10_apiserver_envs.yaml b/component/tests/golden/vshn/appcat/appcat/apiserver/10_apiserver_envs.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/apiserver/10_apiserver_envs.yaml rename to component/tests/golden/vshn/appcat/appcat/apiserver/10_apiserver_envs.yaml diff --git a/tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_api_server.yaml b/component/tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_api_server.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_api_server.yaml rename to component/tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_api_server.yaml diff --git a/tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml b/component/tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml rename to component/tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml diff --git a/tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_binding.yaml b/component/tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_binding.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_binding.yaml rename to component/tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_binding.yaml diff --git a/tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_view.yaml b/component/tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_view.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_view.yaml rename to component/tests/golden/vshn/appcat/appcat/apiserver/10_cluster_role_view.yaml diff --git a/tests/golden/vshn/appcat/appcat/apiserver/20_service_account.yaml b/component/tests/golden/vshn/appcat/appcat/apiserver/20_service_account.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/apiserver/20_service_account.yaml rename to component/tests/golden/vshn/appcat/appcat/apiserver/20_service_account.yaml diff --git a/tests/golden/vshn/appcat/appcat/apiserver/30_api_service.yaml b/component/tests/golden/vshn/appcat/appcat/apiserver/30_api_service.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/apiserver/30_api_service.yaml rename to component/tests/golden/vshn/appcat/appcat/apiserver/30_api_service.yaml diff --git a/tests/golden/vshn/appcat/appcat/apiserver/30_deployment.yaml b/component/tests/golden/vshn/appcat/appcat/apiserver/30_deployment.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/apiserver/30_deployment.yaml rename to component/tests/golden/vshn/appcat/appcat/apiserver/30_deployment.yaml diff --git a/tests/golden/vshn/appcat/appcat/apiserver/30_service.yaml b/component/tests/golden/vshn/appcat/appcat/apiserver/30_service.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/apiserver/30_service.yaml rename to component/tests/golden/vshn/appcat/appcat/apiserver/30_service.yaml diff --git a/tests/golden/vshn/appcat/appcat/apiserver/31_api_certificate.yaml b/component/tests/golden/vshn/appcat/appcat/apiserver/31_api_certificate.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/apiserver/31_api_certificate.yaml rename to component/tests/golden/vshn/appcat/appcat/apiserver/31_api_certificate.yaml diff --git a/tests/golden/vshn/appcat/appcat/apiserver/31_api_issuer.yaml b/component/tests/golden/vshn/appcat/appcat/apiserver/31_api_issuer.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/apiserver/31_api_issuer.yaml rename to component/tests/golden/vshn/appcat/appcat/apiserver/31_api_issuer.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/appcat/10_cluster_role.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_cluster_role.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/appcat/10_cluster_role.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_cluster_role.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_cluster_role_binding.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_pg_webhooks.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_redis_webhooks.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_role_binding_leader_election.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/appcat/10_role_leader_election.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_role_leader_election.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/appcat/10_role_leader_election.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_role_leader_election.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_certificate.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_issuer.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_service.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_service.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_service.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/appcat/10_webhook_service.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/appcat/20_service_account.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/appcat/20_service_account.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/appcat/20_service_account.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/appcat/20_service_account.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/appcat/30_deployment.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/appcat/30_deployment.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/appcat/30_deployment.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/appcat/30_deployment.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_binding.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_binding.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_binding.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_binding.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_deployment.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_deployment.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_deployment.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_deployment.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_role.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_role.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_role.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_role.yaml diff --git a/tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_sa.yaml b/component/tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_sa.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_sa.yaml rename to component/tests/golden/vshn/appcat/appcat/controllers/sts-resizer/10_sa.yaml diff --git a/tests/golden/vshn/appcat/appcat/sla_reporter/01_cronjob.yaml b/component/tests/golden/vshn/appcat/appcat/sla_reporter/01_cronjob.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sla_reporter/01_cronjob.yaml rename to component/tests/golden/vshn/appcat/appcat/sla_reporter/01_cronjob.yaml diff --git a/tests/golden/vshn/appcat/appcat/sla_reporter/02_object_bucket.yaml b/component/tests/golden/vshn/appcat/appcat/sla_reporter/02_object_bucket.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sla_reporter/02_object_bucket.yaml rename to component/tests/golden/vshn/appcat/appcat/sla_reporter/02_object_bucket.yaml diff --git a/tests/golden/vshn/appcat/appcat/sla_reporter/03_network_policy.yaml b/component/tests/golden/vshn/appcat/appcat/sla_reporter/03_network_policy.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sla_reporter/03_network_policy.yaml rename to component/tests/golden/vshn/appcat/appcat/sla_reporter/03_network_policy.yaml diff --git a/tests/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_postgresql.yaml b/component/tests/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_postgresql.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_postgresql.yaml rename to component/tests/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_postgresql.yaml diff --git a/tests/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_postgresql_ha.yaml b/component/tests/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_postgresql_ha.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_postgresql_ha.yaml rename to component/tests/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_postgresql_ha.yaml diff --git a/tests/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_redis.yaml b/component/tests/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_redis.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_redis.yaml rename to component/tests/golden/vshn/appcat/appcat/sli_exporter/90_slo_vshn_redis.yaml diff --git a/tests/golden/vshn/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml b/component/tests/golden/vshn/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml rename to component/tests/golden/vshn/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml diff --git a/tests/golden/vshn/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml b/component/tests/golden/vshn/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml rename to component/tests/golden/vshn/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml diff --git a/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml b/component/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml rename to component/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml diff --git a/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml b/component/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml rename to component/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml diff --git a/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml b/component/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml rename to component/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml diff --git a/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml b/component/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml rename to component/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml diff --git a/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml b/component/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml rename to component/tests/golden/vshn/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml diff --git a/tests/golden/vshn/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml b/component/tests/golden/vshn/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml rename to component/tests/golden/vshn/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml diff --git a/tests/golden/vshn/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml b/component/tests/golden/vshn/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml rename to component/tests/golden/vshn/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml diff --git a/tests/golden/vshn/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml b/component/tests/golden/vshn/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml similarity index 100% rename from tests/golden/vshn/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml rename to component/tests/golden/vshn/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml diff --git a/tests/golden/vshn/appcat/apps/appcat.yaml b/component/tests/golden/vshn/appcat/apps/appcat.yaml similarity index 100% rename from tests/golden/vshn/appcat/apps/appcat.yaml rename to component/tests/golden/vshn/appcat/apps/appcat.yaml diff --git a/tests/minio.yml b/component/tests/minio.yml similarity index 100% rename from tests/minio.yml rename to component/tests/minio.yml diff --git a/tests/openshift.yml b/component/tests/openshift.yml similarity index 100% rename from tests/openshift.yml rename to component/tests/openshift.yml diff --git a/tests/vshn.yml b/component/tests/vshn.yml similarity index 100% rename from tests/vshn.yml rename to component/tests/vshn.yml diff --git a/package/.cruft.json b/package/.cruft.json new file mode 100644 index 000000000..dc2585caf --- /dev/null +++ b/package/.cruft.json @@ -0,0 +1,20 @@ +{ + "template": "https://github.com/projectsyn/commodore-config-package-template.git", + "commit": "8dc31bcae98175d73858af0450d87e4e6e9c4751", + "checkout": "main", + "context": { + "cookiecutter": { + "name": "appcat", + "slug": "appcat", + "test_cases": "defaults", + "add_golden": "y", + "copyright_holder": "VSHN AG ", + "copyright_year": "2023", + "github_owner": "vshn", + "__github_name": "component-appcat", + "__github_url": "https://github.com/vshn/component-appcat", + "_template": "https://github.com/projectsyn/commodore-config-package-template.git" + } + }, + "directory": null +} diff --git a/package/.github/workflows/test.yaml b/package/.github/workflows/test.yaml new file mode 100644 index 000000000..b584bb59d --- /dev/null +++ b/package/.github/workflows/test.yaml @@ -0,0 +1,59 @@ +name: Pull Request +on: + pull_request: + branches: + - master + +env: + PACKAGE_NAME: appcat + +jobs: + linting: + runs-on: ubuntu-latest + strategy: + matrix: + command: + - lint_yaml + - lint_adoc + - lint_commodore + steps: + - uses: actions/checkout@v4 + - name: Run ${{ matrix.command }} + run: make ${{ matrix.command }} + editorconfig: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: snow-actions/eclint@v1.0.1 + with: + args: "check" + test: + runs-on: ubuntu-latest + strategy: + matrix: + instance: + - defaults + defaults: + run: + working-directory: ${{ env.PACKAGE_NAME }} + steps: + - uses: actions/checkout@v4 + with: + path: ${{ env.PACKAGE_NAME }} + - name: Compile component + run: make test -e instance=${{ matrix.instance }} + golden: + runs-on: ubuntu-latest + strategy: + matrix: + instance: + - defaults + defaults: + run: + working-directory: ${{ env.PACKAGE_NAME }} + steps: + - uses: actions/checkout@v4 + with: + path: ${{ env.PACKAGE_NAME }} + - name: Golden diff + run: make golden-diff -e instance=${{ matrix.instance }} diff --git a/package/.gitignore b/package/.gitignore new file mode 100644 index 000000000..d4faf71b5 --- /dev/null +++ b/package/.gitignore @@ -0,0 +1,14 @@ +# Commodore +/.cache/ +/compiled/ +/dependencies/ +/inventory/ +/vendor/ +/jsonnetfile.json +/jsonnetfile.lock.json + +# Antora +/_archive/ +/_public/ + +# Additional entries diff --git a/package/.yamllint.yml b/package/.yamllint.yml new file mode 100644 index 000000000..e0eef8b34 --- /dev/null +++ b/package/.yamllint.yml @@ -0,0 +1,23 @@ +extends: default + +rules: + # 80 chars should be enough, but don't fail if a line is longer + line-length: + max: 80 + level: warning + + # Forbid octal literals until we've fully migrated to reclass-rs + octal-values: + forbid-implicit-octal: true + forbid-explicit-octal: true + + # Restrict truthy values to set which is parsed as boolean by reclass-rs + truthy: + allowed-values: ["true", "false", "True", "False", "TRUE", "FALSE"] + check-keys: true + +ignore: | + dependencies/ + vendor/ + compiled/ + tests/golden/ diff --git a/package/Makefile b/package/Makefile new file mode 100644 index 000000000..367b6e79a --- /dev/null +++ b/package/Makefile @@ -0,0 +1,67 @@ +MAKEFLAGS += --warn-undefined-variables +SHELL := bash +.SHELLFLAGS := -eu -o pipefail -c +.DEFAULT_GOAL := all +.DELETE_ON_ERROR: +.SUFFIXES: + +include Makefile.vars.mk + +.PHONY: help +help: ## Show this help + @grep -E -h '\s##\s' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = "(: ).*?## "}; {gsub(/\\:/,":", $$1)}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' + +.PHONY: all +all: lint + +.PHONY: lint +lint: lint_commodore lint_yaml lint_adoc ## All-in-one linting + +.PHONY: lint_commodore +lint_commodore: ## Run commodore linter on package + $(COMMODORE_CMD) inventory lint . + +.PHONY: lint_yaml +lint_yaml: ## Lint yaml files + $(YAMLLINT_DOCKER) -f parsable -c $(YAMLLINT_CONFIG) $(YAMLLINT_ARGS) -- . + +.PHONY: lint_adoc +lint_adoc: ## Lint documentation + $(VALE_CMD) $(VALE_ARGS) + +.PHONY: docs-serve +docs-serve: ## Preview the documentation + $(ANTORA_PREVIEW_CMD) + +.PHONY: compile +.compile: + mkdir -p dependencies + $(COMPILE_CMD) + +.PHONY: test +test: .compile ## Compile the package +.PHONY: gen-golden +gen-golden: clean .compile ## Update the reference version for target `golden-diff`. + @rm -rf tests/golden/$(instance) + @mkdir -p tests/golden/$(instance) + @cp -R compiled/. tests/golden/$(instance)/. + +.PHONY: golden-diff +golden-diff: clean .compile ## Diff compile output against the reference version. Review output and run `make gen-golden golden-diff` if this target fails. + @git diff --exit-code --minimal --no-index -- tests/golden/$(instance) compiled/ + +.PHONY: golden-diff-all +golden-diff-all: recursive_target=golden-diff +golden-diff-all: $(test_instances) ## Run golden-diff for all instances. Note: this doesn't work when running make with multiple parallel jobs (-j != 1). + +.PHONY: gen-golden-all +gen-golden-all: recursive_target=gen-golden +gen-golden-all: $(test_instances) ## Run gen-golden for all instances. Note: this doesn't work when running make with multiple parallel jobs (-j != 1). + +.PHONY: $(test_instances) +$(test_instances): + $(MAKE) $(recursive_target) -e instance=$(basename $(@F)) + +.PHONY: clean +clean: ## Clean the project + rm -rf .cache compiled dependencies vendor helmcharts jsonnetfile*.json || true diff --git a/package/Makefile.vars.mk b/package/Makefile.vars.mk new file mode 100644 index 000000000..788af0e75 --- /dev/null +++ b/package/Makefile.vars.mk @@ -0,0 +1,40 @@ +# Commodore takes the root dir name as the package name +PACKAGE_NAME ?= $(shell basename ${PWD} | sed s/package-//) + +git_dir ?= $(shell git rev-parse --git-common-dir) +root_volume ?= -v "$${PWD}:/$(PACKAGE_NAME)" +commodore_args ?= tests/$(instance).yml + +ifneq "$(git_dir)" ".git" + git_volume ?= -v "$(git_dir):$(git_dir):ro" + antora_git_volume ?= -v "$(git_dir):/preview/antora/.git:ro" +else + git_volume ?= + antora_git_volume ?= -v "${PWD}/.git:/preview/antora/.git:ro" +endif + +ifneq "$(shell which docker 2>/dev/null)" "" + DOCKER_CMD ?= $(shell which docker) + DOCKER_USERNS ?= "" +else + DOCKER_CMD ?= podman + DOCKER_USERNS ?= keep-id +endif +DOCKER_ARGS ?= run --rm -u "$$(id -u):$$(id -g)" --userns=$(DOCKER_USERNS) -w /$(PACKAGE_NAME) -e HOME="/$(PACKAGE_NAME)" + +YAMLLINT_ARGS ?= --no-warnings +YAMLLINT_CONFIG ?= .yamllint.yml +YAMLLINT_IMAGE ?= docker.io/cytopia/yamllint:latest +YAMLLINT_DOCKER ?= $(DOCKER_CMD) $(DOCKER_ARGS) $(root_volume) $(YAMLLINT_IMAGE) + +VALE_CMD ?= $(DOCKER_CMD) $(DOCKER_ARGS) $(root_volume) --volume "$${PWD}"/docs/modules:/pages ghcr.io/vshn/vale:2.15.5 +VALE_ARGS ?= --minAlertLevel=error --config=/pages/ROOT/pages/.vale.ini /pages + +ANTORA_PREVIEW_CMD ?= $(DOCKER_CMD) run --rm --publish 35729:35729 --publish 2020:2020 $(antora_git_volume) --volume "${PWD}/docs":/preview/antora/docs ghcr.io/vshn/antora-preview:3.1.2.3 --style=syn --antora=docs + + +COMMODORE_CMD ?= $(DOCKER_CMD) $(DOCKER_ARGS) $(root_volume) docker.io/projectsyn/commodore:latest +COMPILE_CMD ?= $(COMMODORE_CMD) package compile . $(commodore_args) + +instance ?= defaults +test_instances = tests/defaults.yml diff --git a/package/lab.yaml b/package/lab.yaml new file mode 100644 index 000000000..e71ba7ecc --- /dev/null +++ b/package/lab.yaml @@ -0,0 +1,8 @@ +# Include this class only on test clusters +classes: + - .main + +parameters: + components: + appcat: + version: package_appcat diff --git a/package/main.yaml b/package/main.yaml new file mode 100644 index 000000000..d74fed45d --- /dev/null +++ b/package/main.yaml @@ -0,0 +1,70 @@ +applications: + - appcat + - crossplane + +parameters: + pkg.appcat: + componentVersion: package_appcat + image: + registry: ghcr.io + repository: vshn/appcat + tag: v4.33.0 + + components: + appcat: + url: https://github.com/vshn/component-appcat.git + version: ${pkg.appcat:componentVersion} + path: component + crossplane: + url: https://github.com/projectsyn/component-crossplane.git + version: v3.4.0 + + appcat: + images: + appcat: + registry: ${pkg.appcat:image:registry} + repository: ${pkg.appcat:image:repository} + tag: ${pkg.appcat:image:tag} + namespaceAnnotations: + openshift.io/node-selector: node-role.kubernetes.io/infra= + apiserver: + enabled: true + namespace: syn-appcat + env: + APPCAT_HANDLER_ENABLED: "true" + + crossplane: + namespaceAnnotations: + openshift.io/node-selector: node-role.kubernetes.io/infra= + monitoring: + enabled: false + helmValues: + xfn: + enabled: true + securityContext: + seccompProfile: null + capabilities: + add: [] + image: + repository: ${pkg.appcat:image:registry}/${pkg.appcat:image:repository} + tag: ${pkg.appcat:image:tag} + resources: + requests: + cpu: 100m + memory: 64Mi + limits: + cpu: 500m + memory: 128Mi + args: + - "grpc" + args: + - "--enable-environment-configs" + - "--enable-composition-functions" + rbacManager: + managementPolicy: Basic + resourcesCrossplane: + requests: + cpu: 10m + resourcesRBACManager: + requests: + cpu: 10m diff --git a/package/tests/defaults.yml b/package/tests/defaults.yml new file mode 100644 index 000000000..2cf1fc55c --- /dev/null +++ b/package/tests/defaults.yml @@ -0,0 +1,3 @@ +--- +classes: + - ..lab diff --git a/package/tests/golden/defaults/appcat/appcat/10_appcat_billing_recording_rule.yaml b/package/tests/golden/defaults/appcat/appcat/10_appcat_billing_recording_rule.yaml new file mode 100644 index 000000000..3e7109308 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/10_appcat_billing_recording_rule.yaml @@ -0,0 +1,85 @@ +apiVersion: monitoring.coreos.com/v1 +kind: PrometheusRule +metadata: + annotations: {} + labels: + name: appcat-billing + name: appcat-billing + namespace: syn-appcat +spec: + groups: + - name: appcat-billing-rules + rules: + - expr: | + sum by (label_appcat_vshn_io_claim_namespace,label_appcat_vshn_io_sla,product,provider,architecture, category, claim_namespace,tenant_id) ( + # Sum values over one hour and get mean + sum_over_time( + # Udpate label product: $product:$provider:$tenant_id:$claim_namespace:$architecture + label_join( + # Add label category: $provider:$claim_namespace + label_join( + # Add label architecture: $SLA, where $SLA is the content of label appcat.vshn.io/sla + label_replace( + # Add label provider: vshn + label_replace( + # Add label product: postgres + label_replace( + # Default appcat.vshn.io/sla to besteffort if it is not set + label_replace( + # Copy label appcat.vshn.io/namespace to label claim_namespace + label_replace( + # Populate tenant_id + label_replace( + # Fetch all namespaces with label label_appuio_io_billing_name=~"appcat-.+" + kube_namespace_labels{ label_appuio_io_billing_name=~"appcat-.+"} * + on (namespace) group_right(label_appuio_io_organization,label_appcat_vshn_io_claim_namespace,label_appcat_vshn_io_sla, label_appuio_io_billing_name) + kube_pod_info{created_by_kind!="Job"}, + "tenant_id", + "t-silent-test-1234", + "", + "" + + ), + "claim_namespace", + "$1", + "label_appcat_vshn_io_claim_namespace", + "(.*)" + ), + "label_appcat_vshn_io_sla", + "besteffort", + "label_appcat_vshn_io_sla", + "^$" + ), + "product", + "appcat_$1", + "label_appuio_io_billing_name", + "appcat-(.+)" + ), + "provider", + "vshn", + "", + "" + ), + "sla", + "$1", + "label_appcat_vshn_io_sla", + "(.*)" + ), + "category", + ":", + "provider", + "claim_namespace" + ), + "product", + ":", + "product", + "provider", + "tenant_id", + "claim_namespace", + "sla" + # other billing queries have [59m:1m] here. This is due to some + # obscure discrepancies between how the cloud-reporting evaluates the query + # and how the GUI/recording rules evaluate the query. + )[60m:1m] + )/60 ) + record: appcat:billing diff --git a/package/tests/golden/defaults/appcat/appcat/10_appcat_maintenance_recording_rule.yaml b/package/tests/golden/defaults/appcat/appcat/10_appcat_maintenance_recording_rule.yaml new file mode 100644 index 000000000..534448600 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/10_appcat_maintenance_recording_rule.yaml @@ -0,0 +1,15 @@ +apiVersion: monitoring.coreos.com/v1 +kind: PrometheusRule +metadata: + annotations: {} + labels: + name: appcat-maintenance + name: appcat-maintenance + namespace: syn-appcat +spec: + groups: + - name: appcat-cluster-maintenance + rules: + - expr: max(max_over_time(openshift_upgrade_controller_upgradejob_state{state="active"}[10m])) + or vector(0) + record: appcat:cluster:maintenance diff --git a/package/tests/golden/defaults/appcat/appcat/10_appcat_namespace.yaml b/package/tests/golden/defaults/appcat/appcat/10_appcat_namespace.yaml new file mode 100644 index 000000000..f41aa3065 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/10_appcat_namespace.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Namespace +metadata: + annotations: + openshift.io/node-selector: node-role.kubernetes.io/infra= + labels: + name: syn-appcat + openshift.io/cluster-monitoring: 'true' + name: syn-appcat diff --git a/package/tests/golden/defaults/appcat/appcat/10_clusterrole_services_read.yaml b/package/tests/golden/defaults/appcat/appcat/10_clusterrole_services_read.yaml new file mode 100644 index 000000000..a2c3bdfe5 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/10_clusterrole_services_read.yaml @@ -0,0 +1,44 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + annotations: {} + labels: + name: appcat-services-read + name: appcat:services:read +rules: + - apiGroups: + - '' + resources: + - pods + - pods/log + - pods/status + - events + - services + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - apps + resources: + - statefulsets + verbs: + - get + - list + - watch + - apiGroups: + - '' + resources: + - pods/portforward + verbs: + - get + - list + - create + - apiGroups: + - '' + - project.openshift.io + resources: + - projects + verbs: + - get diff --git a/package/tests/golden/defaults/appcat/appcat/10_clusterrole_view.yaml b/package/tests/golden/defaults/appcat/appcat/10_clusterrole_view.yaml new file mode 100644 index 000000000..b107c243a --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/10_clusterrole_view.yaml @@ -0,0 +1,20 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + annotations: {} + labels: + rbac.authorization.k8s.io/aggregate-to-admin: 'true' + rbac.authorization.k8s.io/aggregate-to-edit: 'true' + rbac.authorization.k8s.io/aggregate-to-view: 'true' + name: appcat:browse +rules: + - apiGroups: + - apiextensions.crossplane.io + resources: + - compositions + - compositionrevisions + - compositeresourcedefinitions + verbs: + - get + - list + - watch diff --git a/package/tests/golden/defaults/appcat/appcat/apiserver/10_apiserver_envs.yaml b/package/tests/golden/defaults/appcat/appcat/apiserver/10_apiserver_envs.yaml new file mode 100644 index 000000000..5370ade38 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/apiserver/10_apiserver_envs.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +data: + APPCAT_HANDLER_ENABLED: 'true' + VSHN_POSTGRES_BACKUP_HANDLER_ENABLED: 'false' + VSHN_REDIS_BACKUP_HANDLER_ENABLED: 'false' +kind: ConfigMap +metadata: + labels: + api: appcat + apiserver: 'true' + name: apiserver-envs + namespace: syn-appcat diff --git a/package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_api_server.yaml b/package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_api_server.yaml new file mode 100644 index 000000000..78a2445f9 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_api_server.yaml @@ -0,0 +1,80 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + creationTimestamp: null + name: appcat +rules: + - apiGroups: + - '' + resourceNames: + - extension-apiserver-authentication + resources: + - configmaps + verbs: + - get + - list + - watch + - apiGroups: + - '' + resources: + - namespaces + verbs: + - create + - delete + - get + - list + - update + - watch + - apiGroups: + - admissionregistration.k8s.io + resources: + - mutatingwebhookconfigurations + - validatingwebhookconfigurations + verbs: + - get + - list + - watch + - apiGroups: + - apiextensions.crossplane.io + resources: + - compositions + verbs: + - get + - list + - watch + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + - delete + - get + - list + - update + - watch + - apiGroups: + - k8up.io + resources: + - snapshots + verbs: + - get + - list + - watch + - apiGroups: + - stackgres.io + resources: + - sgbackups + verbs: + - get + - list + - watch + - apiGroups: + - vshn.appcat.vshn.io + resources: + - vshnredis + - xvshnpostgresqls + verbs: + - get + - list + - watch diff --git a/package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml b/package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml new file mode 100644 index 000000000..a8405eca8 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_basic_users.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + annotations: {} + labels: + authorization.openshift.io/aggregate-to-basic-user: 'true' + name: system-x-fake-distribution-aggregate-appcat-to-basic-user + name: system:x-fake-distribution:aggregate-appcat-to-basic-user +rules: + - apiGroups: + - api.appcat.vshn.io + resources: + - appcats + verbs: + - get + - list + - watch diff --git a/package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_binding.yaml b/package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_binding.yaml new file mode 100644 index 000000000..942f95125 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_binding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + annotations: {} + labels: + name: appcat + name: appcat +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: appcat +subjects: + - kind: ServiceAccount + name: appcat-apiserver + namespace: syn-appcat diff --git a/package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_view.yaml b/package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_view.yaml new file mode 100644 index 000000000..cbb1dfab6 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/apiserver/10_cluster_role_view.yaml @@ -0,0 +1,18 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + annotations: {} + labels: + name: appcat-api-view + rbac.authorization.k8s.io/aggregate-to-view: 'true' + name: appcat:api:view +rules: + - apiGroups: + - api.appcat.vshn.io + resources: + - vshnpostgresbackups + - vshnredisbackups + verbs: + - get + - list + - watch diff --git a/package/tests/golden/defaults/appcat/appcat/apiserver/20_service_account.yaml b/package/tests/golden/defaults/appcat/appcat/apiserver/20_service_account.yaml new file mode 100644 index 000000000..e3f3dede1 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/apiserver/20_service_account.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: appcat-apiserver + namespace: syn-appcat diff --git a/package/tests/golden/defaults/appcat/appcat/apiserver/30_api_service.yaml b/package/tests/golden/defaults/appcat/appcat/apiserver/30_api_service.yaml new file mode 100644 index 000000000..c835c38fc --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/apiserver/30_api_service.yaml @@ -0,0 +1,17 @@ +apiVersion: apiregistration.k8s.io/v1 +kind: APIService +metadata: + annotations: + cert-manager.io/inject-ca-from: syn-appcat/apiserver-certificate + labels: + api: appcat + apiserver: 'true' + name: v1.api.appcat.vshn.io +spec: + group: api.appcat.vshn.io + groupPriorityMinimum: 2000 + service: + name: appcat + namespace: syn-appcat + version: v1 + versionPriority: 10 diff --git a/package/tests/golden/defaults/appcat/appcat/apiserver/30_deployment.yaml b/package/tests/golden/defaults/appcat/appcat/apiserver/30_deployment.yaml new file mode 100644 index 000000000..1a3885342 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/apiserver/30_deployment.yaml @@ -0,0 +1,52 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + api: appcat + apiserver: 'true' + name: appcat-apiserver + namespace: syn-appcat +spec: + replicas: 1 + selector: + matchLabels: + api: appcat + apiserver: 'true' + template: + metadata: + labels: + api: appcat + apiserver: 'true' + spec: + containers: + - args: + - apiserver + - --audit-log-maxage=0 + - --audit-log-maxbackup=0 + - --audit-log-path=- + - --feature-gates=APIPriorityAndFairness=false + - --secure-port=9443 + - --tls-cert-file=/apiserver.local.config/certificates/tls.crt + - --tls-private-key-file=/apiserver.local.config/certificates/tls.key + env: [] + envFrom: + - configMapRef: + name: apiserver-envs + image: ghcr.io/vshn/appcat-apiserver:v0.1.2 + name: apiserver + resources: + limits: + cpu: 200m + memory: 200Mi + requests: + cpu: 100m + memory: 50Mi + volumeMounts: + - mountPath: /apiserver.local.config/certificates + name: apiserver-certs + readOnly: true + serviceAccountName: appcat-apiserver + volumes: + - name: apiserver-certs + secret: + secretName: appcat-apiserver-tls diff --git a/package/tests/golden/defaults/appcat/appcat/apiserver/30_service.yaml b/package/tests/golden/defaults/appcat/appcat/apiserver/30_service.yaml new file mode 100644 index 000000000..1d715c90b --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/apiserver/30_service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + api: appcat + apiserver: 'true' + name: appcat + namespace: syn-appcat +spec: + ports: + - port: 443 + protocol: TCP + targetPort: 9443 + selector: + api: appcat + apiserver: 'true' diff --git a/package/tests/golden/defaults/appcat/appcat/apiserver/31_api_certificate.yaml b/package/tests/golden/defaults/appcat/appcat/apiserver/31_api_certificate.yaml new file mode 100644 index 000000000..df3281a16 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/apiserver/31_api_certificate.yaml @@ -0,0 +1,25 @@ +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: apiserver-certificate + namespace: syn-appcat +spec: + dnsNames: + - appcat.syn-appcat.svc + duration: 87600h0m0s + issuerRef: + group: cert-manager.io + kind: Issuer + name: api-server-issuer + privateKey: + algorithm: RSA + encoding: PKCS1 + size: 4096 + renewBefore: 2400h0m0s + secretName: appcat-apiserver-tls + subject: + organizations: + - vshn-appcat + usages: + - server auth + - client auth diff --git a/package/tests/golden/defaults/appcat/appcat/apiserver/31_api_issuer.yaml b/package/tests/golden/defaults/appcat/appcat/apiserver/31_api_issuer.yaml new file mode 100644 index 000000000..dc6fa5b97 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/apiserver/31_api_issuer.yaml @@ -0,0 +1,7 @@ +apiVersion: cert-manager.io/v1 +kind: Issuer +metadata: + name: api-server-issuer + namespace: syn-appcat +spec: + selfSigned: {} diff --git a/package/tests/golden/defaults/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml b/package/tests/golden/defaults/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml new file mode 100644 index 000000000..beee4840e --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/sli_exporter/apps_v1_deployment_appcat-sliexporter-controller-manager.yaml @@ -0,0 +1,68 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + control-plane: controller-manager + name: controller-manager + name: appcat-sliexporter-controller-manager + namespace: appcat-slos +spec: + replicas: 1 + selector: + matchLabels: + control-plane: controller-manager + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: manager + labels: + control-plane: controller-manager + spec: + containers: + - args: + - sliprober + - --health-probe-bind-address=:8081 + - --metrics-bind-address=127.0.0.1:8080 + env: + - name: APPCAT_SLI_VSHNPOSTGRESQL + value: "false" + - name: APPCAT_SLI_VSHNREDIS + value: "false" + image: ghcr.io/vshn/appcat:v4.33.0 + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: manager + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + limits: + cpu: 100m + memory: 300Mi + requests: + cpu: 10m + memory: 200Mi + securityContext: + allowPrivilegeEscalation: false + - args: + - --secure-listen-address=0.0.0.0:8443 + - --upstream=http://127.0.0.1:8080/ + - --logtostderr=true + - --v=10 + image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0 + name: kube-rbac-proxy + ports: + - containerPort: 8443 + name: https + protocol: TCP + securityContext: + runAsNonRoot: true + serviceAccountName: appcat-sliexporter-controller-manager + terminationGracePeriodSeconds: 10 diff --git a/package/tests/golden/defaults/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml b/package/tests/golden/defaults/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml new file mode 100644 index 000000000..726aa1020 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/sli_exporter/monitoring.coreos.com_v1_servicemonitor_appcat-sliexporter-controller-manager-metrics-monitor.yaml @@ -0,0 +1,19 @@ +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + labels: + control-plane: controller-manager + name: appcat-sliexporter-controller-manager-metrics-monitor + namespace: appcat-slos +spec: + endpoints: + - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token + honorLabels: true + path: /metrics + port: https + scheme: https + tlsConfig: + insecureSkipVerify: true + selector: + matchLabels: + control-plane: controller-manager diff --git a/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml b/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml new file mode 100644 index 000000000..aea288f1b --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-appcat-sli-exporter.yaml @@ -0,0 +1,77 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: appcat-sliexporter-appcat-sli-exporter +rules: +- apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list + - watch +- apiGroups: + - vshn.appcat.vshn.io + resources: + - vshnpostgresqls + verbs: + - get + - list + - watch +- apiGroups: + - vshn.appcat.vshn.io + resources: + - vshnpostgresqls/status + verbs: + - get +- apiGroups: + - vshn.appcat.vshn.io + resources: + - vshnredis + verbs: + - get + - list + - watch +- apiGroups: + - vshn.appcat.vshn.io + resources: + - vshnredis/status + verbs: + - get +- apiGroups: + - vshn.appcat.vshn.io + resources: + - xvshnpostgresqls + verbs: + - get + - list + - watch +- apiGroups: + - vshn.appcat.vshn.io + resources: + - xvshnpostgresqls/status + verbs: + - get +- apiGroups: + - vshn.appcat.vshn.io + resources: + - xvshnredis + verbs: + - get + - list + - watch +- apiGroups: + - vshn.appcat.vshn.io + resources: + - xvshnredis/status + verbs: + - get diff --git a/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml b/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml new file mode 100644 index 000000000..2e537691f --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-metrics-reader.yaml @@ -0,0 +1,9 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: appcat-sliexporter-metrics-reader +rules: +- nonResourceURLs: + - /metrics + verbs: + - get diff --git a/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml b/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml new file mode 100644 index 000000000..5e8f92f8d --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrole_appcat-sliexporter-proxy-role.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: appcat-sliexporter-proxy-role +rules: +- apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create +- apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create diff --git a/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml b/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml new file mode 100644 index 000000000..ab3bd597f --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-appcat-sli-exporter.yaml @@ -0,0 +1,12 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: appcat-sliexporter-appcat-sli-exporter +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: appcat-sliexporter-appcat-sli-exporter +subjects: +- kind: ServiceAccount + name: appcat-sliexporter-controller-manager + namespace: appcat-slos diff --git a/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml b/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml new file mode 100644 index 000000000..f80a89762 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/sli_exporter/rbac.authorization.k8s.io_v1_clusterrolebinding_appcat-sliexporter-proxy-rolebinding.yaml @@ -0,0 +1,12 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: appcat-sliexporter-proxy-rolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: appcat-sliexporter-proxy-role +subjects: +- kind: ServiceAccount + name: appcat-sliexporter-controller-manager + namespace: appcat-slos diff --git a/package/tests/golden/defaults/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml b/package/tests/golden/defaults/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml new file mode 100644 index 000000000..e860dde00 --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/sli_exporter/v1_namespace_appcat-slos.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Namespace +metadata: + annotations: + openshift.io/node-selector: node-role.kubernetes.io/infra= + labels: + control-plane: controller-manager + name: appcat-slos diff --git a/package/tests/golden/defaults/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml b/package/tests/golden/defaults/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml new file mode 100644 index 000000000..17a01dc8f --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/sli_exporter/v1_service_appcat-sliexporter-controller-manager-metrics-service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + control-plane: controller-manager + name: appcat-sliexporter-controller-manager-metrics-service + namespace: appcat-slos +spec: + ports: + - name: https + port: 8443 + protocol: TCP + targetPort: https + selector: + control-plane: controller-manager diff --git a/package/tests/golden/defaults/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml b/package/tests/golden/defaults/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml new file mode 100644 index 000000000..b6f125cea --- /dev/null +++ b/package/tests/golden/defaults/appcat/appcat/sli_exporter/v1_serviceaccount_appcat-sliexporter-controller-manager.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: appcat-sliexporter-controller-manager + namespace: appcat-slos diff --git a/package/tests/golden/defaults/appcat/appcat/statefuleset-resize-controller.yaml b/package/tests/golden/defaults/appcat/appcat/statefuleset-resize-controller.yaml new file mode 100644 index 000000000..e69de29bb diff --git a/package/tests/golden/defaults/appcat/apps/appcat.yaml b/package/tests/golden/defaults/appcat/apps/appcat.yaml new file mode 100644 index 000000000..e69de29bb diff --git a/package/tests/golden/defaults/crossplane/apps/crossplane.yaml b/package/tests/golden/defaults/crossplane/apps/crossplane.yaml new file mode 100644 index 000000000..921fb8274 --- /dev/null +++ b/package/tests/golden/defaults/crossplane/apps/crossplane.yaml @@ -0,0 +1,7 @@ +spec: + ignoreDifferences: + - group: rbac.authorization.k8s.io + jsonPointers: + - /rules + kind: ClusterRole + name: crossplane diff --git a/package/tests/golden/defaults/crossplane/crossplane/00_namespace.yaml b/package/tests/golden/defaults/crossplane/crossplane/00_namespace.yaml new file mode 100644 index 000000000..e957325c3 --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/00_namespace.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Namespace +metadata: + annotations: + openshift.io/node-selector: node-role.kubernetes.io/infra= + labels: + name: syn-crossplane + name: syn-crossplane diff --git a/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/clusterrole.yaml b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/clusterrole.yaml new file mode 100644 index 000000000..341596cbe --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/clusterrole.yaml @@ -0,0 +1,116 @@ +aggregationRule: + clusterRoleSelectors: + - matchLabels: + rbac.crossplane.io/aggregate-to-crossplane: 'true' +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + name: crossplane +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + crossplane.io/scope: system + helm.sh/chart: crossplane-1.12.2 + rbac.crossplane.io/aggregate-to-crossplane: 'true' + name: crossplane:system:aggregate-to-crossplane +rules: + - apiGroups: + - '' + resources: + - events + verbs: + - create + - update + - patch + - delete + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - '*' + - apiGroups: + - '' + resources: + - secrets + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - '' + resources: + - serviceaccounts + - services + verbs: + - '*' + - apiGroups: + - apiextensions.crossplane.io + - pkg.crossplane.io + - secrets.crossplane.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - extensions + - apps + resources: + - deployments + verbs: + - get + - list + - create + - update + - patch + - delete + - watch + - apiGroups: + - '' + - coordination.k8s.io + resources: + - configmaps + - leases + verbs: + - get + - list + - create + - update + - patch + - watch + - delete + - apiGroups: + - admissionregistration.k8s.io + resources: + - validatingwebhookconfigurations + - mutatingwebhookconfigurations + verbs: + - get + - list + - create + - update + - patch + - watch + - delete diff --git a/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/clusterrolebinding.yaml b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/clusterrolebinding.yaml new file mode 100644 index 000000000..fa319eae6 --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/clusterrolebinding.yaml @@ -0,0 +1,21 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + name: crossplane +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: crossplane +subjects: + - kind: ServiceAccount + name: crossplane + namespace: syn-crossplane diff --git a/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/deployment.yaml b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/deployment.yaml new file mode 100644 index 000000000..28f69dea3 --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/deployment.yaml @@ -0,0 +1,187 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + release: crossplane + name: crossplane + namespace: syn-crossplane +spec: + replicas: 1 + selector: + matchLabels: + app: crossplane + release: crossplane + strategy: + type: RollingUpdate + template: + metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + release: crossplane + spec: + containers: + - args: + - core + - start + - --enable-environment-configs + - --enable-composition-functions + env: + - name: GOMAXPROCS + valueFrom: + resourceFieldRef: + containerName: crossplane + resource: limits.cpu + - name: GOMEMLIMIT + valueFrom: + resourceFieldRef: + containerName: crossplane + resource: limits.memory + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: LEADER_ELECTION + value: 'true' + - name: WEBHOOK_TLS_SECRET_NAME + value: webhook-tls-secret + - name: WEBHOOK_TLS_CERT_DIR + value: /webhook/tls + image: docker.io/crossplane/crossplane:v1.12.2 + imagePullPolicy: IfNotPresent + name: crossplane + ports: + - containerPort: 9443 + name: webhooks + resources: + limits: + cpu: 1000m + memory: 512Mi + requests: + cpu: 500m + memory: 256Mi + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + runAsGroup: 65532 + runAsUser: 65532 + volumeMounts: + - mountPath: /cache + name: package-cache + - mountPath: /webhook/tls + name: webhook-tls-secret + - args: + - start + - grpc + env: + - name: GOMAXPROCS + valueFrom: + resourceFieldRef: + containerName: crossplane + resource: limits.cpu + - name: GOMEMLIMIT + valueFrom: + resourceFieldRef: + containerName: crossplane + resource: limits.memory + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + image: ghcr.io/vshn/appcat:v4.33.0 + imagePullPolicy: IfNotPresent + name: crossplane-xfn + resources: + limits: + cpu: 500m + memory: 128Mi + requests: + cpu: 100m + memory: 64Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: [] + readOnlyRootFilesystem: true + runAsGroup: 65532 + runAsUser: 65532 + volumeMounts: + - mountPath: /xfn + name: xfn-cache + hostNetwork: false + initContainers: + - args: + - core + - init + env: + - name: GOMAXPROCS + valueFrom: + resourceFieldRef: + containerName: crossplane-init + resource: limits.cpu + - name: GOMEMLIMIT + valueFrom: + resourceFieldRef: + containerName: crossplane-init + resource: limits.memory + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: POD_SERVICE_ACCOUNT + valueFrom: + fieldRef: + fieldPath: spec.serviceAccountName + - name: WEBHOOK_TLS_SECRET_NAME + value: webhook-tls-secret + - name: WEBHOOK_SERVICE_NAME + value: crossplane-webhooks + - name: WEBHOOK_SERVICE_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: WEBHOOK_SERVICE_PORT + value: '9443' + image: docker.io/crossplane/crossplane:v1.12.2 + imagePullPolicy: IfNotPresent + name: crossplane-init + resources: + limits: + cpu: 1000m + memory: 512Mi + requests: + cpu: 500m + memory: 256Mi + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + runAsGroup: 65532 + runAsUser: 65532 + securityContext: {} + serviceAccountName: crossplane + volumes: + - emptyDir: + medium: null + sizeLimit: 20Mi + name: package-cache + - emptyDir: + medium: null + sizeLimit: 1Gi + name: xfn-cache + - name: webhook-tls-secret + secret: + secretName: webhook-tls-secret diff --git a/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-allowed-provider-permissions.yaml b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-allowed-provider-permissions.yaml new file mode 100644 index 000000000..1e1f5a470 --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-allowed-provider-permissions.yaml @@ -0,0 +1,17 @@ +aggregationRule: + clusterRoleSelectors: + - matchLabels: + rbac.crossplane.io/aggregate-to-allowed-provider-permissions: 'true' +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + name: crossplane:allowed-provider-permissions diff --git a/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-clusterrole.yaml b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-clusterrole.yaml new file mode 100644 index 000000000..2aa3337b7 --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-clusterrole.yaml @@ -0,0 +1,113 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + name: crossplane-rbac-manager +rules: + - apiGroups: + - '' + resources: + - events + verbs: + - create + - update + - patch + - delete + - apiGroups: + - '' + resources: + - namespaces + - serviceaccounts + verbs: + - get + - list + - watch + - apiGroups: + - '' + resources: + - namespaces/finalizers + verbs: + - update + - apiGroups: + - apiextensions.crossplane.io + resources: + - compositeresourcedefinitions + verbs: + - get + - list + - watch + - apiGroups: + - apiextensions.crossplane.io + resources: + - compositeresourcedefinitions/finalizers + verbs: + - update + - apiGroups: + - pkg.crossplane.io + resources: + - providerrevisions + verbs: + - get + - list + - watch + - apiGroups: + - pkg.crossplane.io + resources: + - providerrevisions/finalizers + verbs: + - update + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - list + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - roles + verbs: + - get + - list + - watch + - create + - update + - patch + - escalate + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + verbs: + - bind + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + verbs: + - '*' + - apiGroups: + - '' + - coordination.k8s.io + resources: + - configmaps + - leases + verbs: + - get + - list + - create + - update + - patch + - watch + - delete diff --git a/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-clusterrolebinding.yaml b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-clusterrolebinding.yaml new file mode 100644 index 000000000..747e3f551 --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-clusterrolebinding.yaml @@ -0,0 +1,21 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + name: crossplane-rbac-manager +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: crossplane-rbac-manager +subjects: + - kind: ServiceAccount + name: rbac-manager + namespace: syn-crossplane diff --git a/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-deployment.yaml b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-deployment.yaml new file mode 100644 index 000000000..56cda4bf6 --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-deployment.yaml @@ -0,0 +1,102 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: crossplane-rbac-manager + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + release: crossplane + name: crossplane-rbac-manager + namespace: syn-crossplane +spec: + replicas: 1 + selector: + matchLabels: + app: crossplane-rbac-manager + release: crossplane + strategy: + type: RollingUpdate + template: + metadata: + labels: + app: crossplane-rbac-manager + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + release: crossplane + spec: + containers: + - args: + - rbac + - start + - --manage=Basic + - --provider-clusterrole=crossplane:allowed-provider-permissions + env: + - name: GOMAXPROCS + valueFrom: + resourceFieldRef: + containerName: crossplane + resource: limits.cpu + - name: GOMEMLIMIT + valueFrom: + resourceFieldRef: + containerName: crossplane + resource: limits.memory + - name: LEADER_ELECTION + value: 'true' + image: docker.io/crossplane/crossplane:v1.12.2 + imagePullPolicy: IfNotPresent + name: crossplane + resources: + limits: + cpu: 1000m + memory: 512Mi + requests: + cpu: 500m + memory: 256Mi + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + runAsGroup: 65532 + runAsUser: 65532 + initContainers: + - args: + - rbac + - init + env: + - name: GOMAXPROCS + valueFrom: + resourceFieldRef: + containerName: crossplane-init + resource: limits.cpu + - name: GOMEMLIMIT + valueFrom: + resourceFieldRef: + containerName: crossplane-init + resource: limits.memory + image: docker.io/crossplane/crossplane:v1.12.2 + imagePullPolicy: IfNotPresent + name: crossplane-init + resources: + limits: + cpu: 1000m + memory: 512Mi + requests: + cpu: 500m + memory: 256Mi + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + runAsGroup: 65532 + runAsUser: 65532 + securityContext: {} + serviceAccountName: rbac-manager diff --git a/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-managed-clusterroles.yaml b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-managed-clusterroles.yaml new file mode 100644 index 000000000..a8df397a9 --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-managed-clusterroles.yaml @@ -0,0 +1,400 @@ +aggregationRule: + clusterRoleSelectors: + - matchLabels: + rbac.crossplane.io/aggregate-to-admin: 'true' +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + name: crossplane-admin +--- +aggregationRule: + clusterRoleSelectors: + - matchLabels: + rbac.crossplane.io/aggregate-to-edit: 'true' +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + name: crossplane-edit +--- +aggregationRule: + clusterRoleSelectors: + - matchLabels: + rbac.crossplane.io/aggregate-to-view: 'true' +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + name: crossplane-view +--- +aggregationRule: + clusterRoleSelectors: + - matchLabels: + rbac.crossplane.io/aggregate-to-browse: 'true' +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + name: crossplane-browse +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + rbac.crossplane.io/aggregate-to-admin: 'true' + name: crossplane:aggregate-to-admin +rules: + - apiGroups: + - '' + resources: + - events + verbs: + - get + - list + - watch + - apiGroups: + - '' + resources: + - secrets + - namespaces + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - roles + verbs: + - get + - list + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterrolebindings + - rolebindings + verbs: + - '*' + - apiGroups: + - apiextensions.crossplane.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - pkg.crossplane.io + resources: + - providers + - configurations + - providerrevisions + - configurationrevisions + verbs: + - '*' + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + rbac.crossplane.io/aggregate-to-edit: 'true' + name: crossplane:aggregate-to-edit +rules: + - apiGroups: + - '' + resources: + - events + verbs: + - get + - list + - watch + - apiGroups: + - '' + resources: + - secrets + verbs: + - '*' + - apiGroups: + - '' + resources: + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - apiextensions.crossplane.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - pkg.crossplane.io + resources: + - providers + - configurations + - providerrevisions + - configurationrevisions + verbs: + - '*' +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + rbac.crossplane.io/aggregate-to-view: 'true' + name: crossplane:aggregate-to-view +rules: + - apiGroups: + - '' + resources: + - events + verbs: + - get + - list + - watch + - apiGroups: + - '' + resources: + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - apiextensions.crossplane.io + resources: + - '*' + verbs: + - get + - list + - watch + - apiGroups: + - pkg.crossplane.io + resources: + - providers + - configurations + - providerrevisions + - configurationrevisions + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + rbac.crossplane.io/aggregate-to-browse: 'true' + name: crossplane:aggregate-to-browse +rules: + - apiGroups: + - '' + resources: + - events + verbs: + - get + - list + - watch + - apiGroups: + - apiextensions.crossplane.io + resources: + - '*' + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + rbac.crossplane.io/aggregate-to-ns-admin: 'true' + rbac.crossplane.io/base-of-ns-admin: 'true' + name: crossplane:aggregate-to-ns-admin +rules: + - apiGroups: + - '' + resources: + - events + verbs: + - get + - list + - watch + - apiGroups: + - '' + resources: + - secrets + verbs: + - '*' + - apiGroups: + - rbac.authorization.k8s.io + resources: + - roles + verbs: + - get + - list + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - rolebindings + verbs: + - '*' +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + rbac.crossplane.io/aggregate-to-ns-edit: 'true' + rbac.crossplane.io/base-of-ns-edit: 'true' + name: crossplane:aggregate-to-ns-edit +rules: + - apiGroups: + - '' + resources: + - events + verbs: + - get + - list + - watch + - apiGroups: + - '' + resources: + - secrets + verbs: + - '*' +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + rbac.crossplane.io/aggregate-to-ns-view: 'true' + rbac.crossplane.io/base-of-ns-view: 'true' + name: crossplane:aggregate-to-ns-view +rules: + - apiGroups: + - '' + resources: + - events + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + name: crossplane-admin +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: crossplane-admin +subjects: + - apiGroup: rbac.authorization.k8s.io + kind: Group + name: crossplane:masters diff --git a/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-serviceaccount.yaml b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-serviceaccount.yaml new file mode 100644 index 000000000..a02bc38a1 --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/rbac-manager-serviceaccount.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + name: rbac-manager + namespace: syn-crossplane diff --git a/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/secret.yaml b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/secret.yaml new file mode 100644 index 000000000..1cd315340 --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/secret.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Secret +metadata: + name: webhook-tls-secret + namespace: syn-crossplane +type: Opaque diff --git a/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/service.yaml b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/service.yaml new file mode 100644 index 000000000..30122aefd --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/service.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + release: crossplane + name: crossplane-webhooks + namespace: syn-crossplane +spec: + ports: + - port: 9443 + protocol: TCP + targetPort: 9443 + selector: + app: crossplane + release: crossplane diff --git a/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/serviceaccount.yaml b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/serviceaccount.yaml new file mode 100644 index 000000000..0106c1af1 --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/01_helmchart/crossplane/templates/serviceaccount.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app: crossplane + app.kubernetes.io/component: cloud-infrastructure-controller + app.kubernetes.io/instance: crossplane + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: crossplane + app.kubernetes.io/part-of: crossplane + app.kubernetes.io/version: 1.12.2 + helm.sh/chart: crossplane-1.12.2 + name: crossplane + namespace: syn-crossplane diff --git a/package/tests/golden/defaults/crossplane/crossplane/01_rbac_finalizer_clusterrole.yaml b/package/tests/golden/defaults/crossplane/crossplane/01_rbac_finalizer_clusterrole.yaml new file mode 100644 index 000000000..8367a56c6 --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/01_rbac_finalizer_clusterrole.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + annotations: {} + labels: + name: crossplane-rbac-manager-finalizer + name: crossplane-rbac-manager:finalizer +rules: + - apiGroups: + - pkg.crossplane.io + - apiextensions.crossplane.io + resources: + - '*/finalizers' + verbs: + - '*' diff --git a/package/tests/golden/defaults/crossplane/crossplane/01_rbac_finalizer_clusterrolebinding.yaml b/package/tests/golden/defaults/crossplane/crossplane/01_rbac_finalizer_clusterrolebinding.yaml new file mode 100644 index 000000000..c9df16b6c --- /dev/null +++ b/package/tests/golden/defaults/crossplane/crossplane/01_rbac_finalizer_clusterrolebinding.yaml @@ -0,0 +1,15 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + annotations: {} + labels: + name: crossplane-rbac-manager-finalizer + name: crossplane-rbac-manager:finalizer +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: crossplane-rbac-manager:finalizer +subjects: + - kind: ServiceAccount + name: rbac-manager + namespace: syn-crossplane diff --git a/pod.yaml b/pod.yaml deleted file mode 100644 index 3ae40502c..000000000 --- a/pod.yaml +++ /dev/null @@ -1,1226 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - annotations: - stackgres.io/cluster-controller-version: 1.4.0 - stackgres.io/envoy-version: 1.24.0 - stackgres.io/operatorVersion: 1.4.0 - stackgres.io/patroni-version: 2.1.4 - stackgres.io/pgbouncer-version: 1.17.0 - stackgres.io/postgresql-version: "14.6" - stackgres.io/prometheus-postgres-exporter-version: 0.11.1 - status: '{"conn_url":"postgres://10.244.2.7:7433/postgres","api_url":"http://10.244.2.7:8008/patroni","state":"running","role":"master","version":"2.1.4","xlog_location":26523224,"timeline":1}' - creationTimestamp: "2023-02-10T09:55:17Z" - generateName: pgsql-app1-prod-9xdgn- - labels: - app: StackGresCluster - controller-revision-hash: pgsql-app1-prod-9xdgn-6cc86c5fdf - role: master - stackgres.io/cluster: "true" - stackgres.io/cluster-name: pgsql-app1-prod-9xdgn - stackgres.io/cluster-uid: 60fcae55-deb0-4d01-b7c9-86e93ee119dd - stackgres.io/disruptible: "true" - statefulset.kubernetes.io/pod-name: pgsql-app1-prod-9xdgn-0 - name: pgsql-app1-prod-9xdgn-0 - namespace: vshn-postgresql-pgsql-app1-prod-9xdgn - ownerReferences: - - apiVersion: apps/v1 - blockOwnerDeletion: true - controller: true - kind: StatefulSet - name: pgsql-app1-prod-9xdgn - uid: ebe2dcfb-6213-4221-bfd0-ca63a96f87cf - resourceVersion: "4235" - uid: 0791bca7-280b-4749-bd68-4234df745ae4 -spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchExpressions: - - key: app - operator: In - values: - - StackGresCluster - - key: stackgres.io/cluster - operator: In - values: - - "true" - topologyKey: kubernetes.io/hostname - containers: - - command: - - /bin/sh - - -ex - - /usr/local/bin/start-patroni.sh - env: - - name: LOCAL_BIN_PATH - value: /usr/local/bin - - name: PG_BASE_PATH - value: /var/lib/postgresql - - name: PG_DATA_PATH - value: /var/lib/postgresql/data - - name: ETC_PASSWD_PATH - value: /etc/passwd - - name: ETC_GROUP_PATH - value: /etc/group - - name: ETC_SHADOW_PATH - value: /etc/shadow - - name: ETC_GSHADOW_PATH - value: /etc/gshadow - - name: PG_EXTENSIONS_BASE_PATH - value: /var/lib/postgresql/extensions - - name: PG_EXTENSIONS_PATH - value: /var/lib/postgresql/extensions/14/6 - - name: PG_EXTENSIONS_BINARIES_PATH - value: /var/lib/postgresql/extensions/14/6/usr/lib/postgresql/14 - - name: PG_EXTENSIONS_BIN_PATH - value: /var/lib/postgresql/extensions/14/6/usr/lib/postgresql/14/bin - - name: PG_EXTENSIONS_LIB_PATH - value: /var/lib/postgresql/extensions/14/6/usr/lib/postgresql/14/lib - - name: PG_EXTENSIONS_SHARE_PATH - value: /var/lib/postgresql/extensions/14/6/usr/share/postgresql/14 - - name: PG_EXTENSIONS_EXTENSION_PATH - value: /var/lib/postgresql/extensions/14/6/usr/share/postgresql/14/extension - - name: PG_EXTENSIONS_LIB64_PATH - value: /var/lib/postgresql/extensions/14/6/usr/lib64 - - name: PG_LIB64_PATH - value: /usr/lib64 - - name: PG_BINARIES_PATH - value: /usr/lib/postgresql/14.6 - - name: PG_BIN_PATH - value: /usr/lib/postgresql/14.6/bin - - name: PG_LIB_PATH - value: /usr/lib/postgresql/14.6/lib - - name: PG_EXTRA_BIN_PATH - value: /usr/lib/postgresql/14.6/extra/bin - - name: PG_EXTRA_LIB_PATH - value: /usr/lib/postgresql/14.6/extra/lib - - name: PG_SHARE_PATH - value: /usr/share/postgresql/14.6 - - name: PG_EXTENSION_PATH - value: /usr/share/postgresql/14.6/extension - - name: PG_RELOCATED_BASE_PATH - value: /var/lib/postgresql/relocated - - name: PG_RELOCATED_PATH - value: /var/lib/postgresql/relocated/14.6 - - name: PG_RELOCATED_LIB64_PATH - value: /var/lib/postgresql/relocated/14.6/usr/lib64 - - name: PG_RELOCATED_BINARIES_PATH - value: /var/lib/postgresql/relocated/14.6/usr/lib/postgresql/14.6 - - name: PG_RELOCATED_BIN_PATH - value: /var/lib/postgresql/relocated/14.6/usr/lib/postgresql/14.6/bin - - name: PG_RELOCATED_LIB_PATH - value: /var/lib/postgresql/relocated/14.6/usr/lib/postgresql/14.6/lib - - name: PG_RELOCATED_SHARE_PATH - value: /var/lib/postgresql/relocated/14.6/usr/share/postgresql//14.6 - - name: PG_RELOCATED_EXTENSION_PATH - value: /var/lib/postgresql/relocated/14.6/usr/share/postgresql//14.6/extension - - name: PG_UPGRADE_PATH - value: /var/lib/postgresql/upgrade - - name: PATH - value: /usr/lib/postgresql/14.6/bin:/usr/lib/postgresql/14.6/extra/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - - name: LD_LIBRARY_PATH - value: /usr/lib/postgresql/14.6/extra/lib - - name: PATRONI_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - - name: PATRONI_KUBERNETES_NAMESPACE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - - name: PATRONI_KUBERNETES_POD_IP - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: status.podIP - - name: PATRONI_RESTAPI_CONNECT_ADDRESS - value: ${PATRONI_KUBERNETES_POD_IP}:8008 - - name: PATRONI_ENV - value: patroni - - name: BASE_SECRET_PATH - value: /etc/env/.secret - - name: PATRONI_ENV_PATH - value: /etc/env/patroni - - name: PATRONI_SECRET_ENV_PATH - value: /etc/env/.secret/patroni - - name: PATRONI_CONFIG_PATH - value: /etc/patroni - - name: PATRONI_CONFIG_FILE_PATH - value: /etc/patroni/config.yml - - name: BACKUP_ENV - value: backup - - name: BACKUP_ENV_PATH - value: /etc/env/backup - - name: BACKUP_SECRET_PATH - value: /etc/env/.secret/backup - - name: REPLICATE_ENV - value: replicate - - name: REPLICATE_ENV_PATH - value: /etc/env/replicate - - name: REPLICATE_SECRET_PATH - value: /etc/env/.secret/replicate - - name: RESTORE_ENV - value: restore - - name: RESTORE_ENV_PATH - value: /etc/env/restore - - name: RESTORE_SECRET_PATH - value: /etc/env/.secret/restore - - name: HUGEPAGES_2M_PATH - value: /hugepages-2Mi - - name: HUGEPAGES_1G_PATH - value: /hugepages-1Gi - - name: PATRONI_CONFIG_MD5SUM - value: 6C0567FCC81D75BD4E348048D122B01F - envFrom: - - configMapRef: - name: pgsql-app1-prod-9xdgn - image: docker.io/ongres/patroni:v2.1.4-pg14.6-build-6.18 - imagePullPolicy: IfNotPresent - livenessProbe: - failureThreshold: 6 - httpGet: - path: /liveness - port: 8008 - scheme: HTTP - initialDelaySeconds: 15 - periodSeconds: 20 - successThreshold: 1 - timeoutSeconds: 1 - name: patroni - ports: - - containerPort: 7432 - name: pgport - protocol: TCP - - containerPort: 7433 - name: pgreplication - protocol: TCP - - containerPort: 8008 - name: patroniport - protocol: TCP - readinessProbe: - failureThreshold: 3 - httpGet: - path: /readiness - port: 8008 - scheme: HTTP - initialDelaySeconds: 5 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - resources: - limits: - cpu: 500m - memory: 128Mi - requests: - cpu: 500m - memory: 128Mi - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/run/postgresql - name: socket - - mountPath: /dev/shm - name: dshm - - mountPath: /var/log/postgresql - name: log - - mountPath: /usr/local/bin - name: local-bin - - mountPath: /etc/env/patroni - name: patroni-env - - mountPath: /etc/env/.secret/patroni - name: patroni-secret-env - - mountPath: /etc/patroni - name: patroni-config - - mountPath: /etc/env/backup - name: backup-env - - mountPath: /etc/env/.secret/backup - name: backup-secret - - mountPath: /etc/env/replicate - name: replicate-env - - mountPath: /etc/env/.secret/replicate - name: replicate-secret - - mountPath: /var/lib/postgresql - name: pgsql-app1-prod-9xdgn-data - - mountPath: /etc/passwd - name: user - readOnly: true - subPath: etc/passwd - - mountPath: /etc/group - name: user - readOnly: true - subPath: etc/group - - mountPath: /etc/shadow - name: user - readOnly: true - subPath: etc/shadow - - mountPath: /etc/gshadow - name: user - readOnly: true - subPath: etc/gshadow - - mountPath: /usr/lib64 - name: pgsql-app1-prod-9xdgn-data - subPath: relocated/14.6/usr/lib64 - - mountPath: /usr/lib/postgresql/14.6/bin - name: pgsql-app1-prod-9xdgn-data - subPath: relocated/14.6/usr/lib/postgresql/14.6/bin - - mountPath: /usr/lib/postgresql/14.6/lib - name: pgsql-app1-prod-9xdgn-data - subPath: relocated/14.6/usr/lib/postgresql/14.6/lib - - mountPath: /usr/share/postgresql/14.6 - name: pgsql-app1-prod-9xdgn-data - subPath: relocated/14.6/usr/share/postgresql//14.6 - - mountPath: /usr/share/postgresql/14.6/extension - name: pgsql-app1-prod-9xdgn-data - subPath: extensions/14/6/usr/share/postgresql/14/extension - - mountPath: /usr/lib/postgresql/14.6/extra/bin - name: pgsql-app1-prod-9xdgn-data - subPath: extensions/14/6/usr/lib/postgresql/14/bin - - mountPath: /usr/lib/postgresql/14.6/extra/lib - name: pgsql-app1-prod-9xdgn-data - subPath: extensions/14/6/usr/lib64 - - mountPath: /var/run/secrets/kubernetes.io/serviceaccount - name: kube-api-access-tqsbn - readOnly: true - - args: - - -c - - /etc/envoy/envoy.json - command: - - /usr/local/bin/envoy - image: docker.io/ongres/envoy:v1.24.0-build-6.18 - imagePullPolicy: IfNotPresent - name: envoy - ports: - - containerPort: 7432 - name: pgport - protocol: TCP - - containerPort: 7433 - name: pgreplication - protocol: TCP - - containerPort: 8001 - name: envoy - protocol: TCP - - containerPort: 8008 - name: patroniport - protocol: TCP - resources: - requests: - cpu: 250m - memory: 64Mi - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /etc/envoy - name: envoy - readOnly: true - - mountPath: /etc/passwd - name: user - readOnly: true - subPath: etc/passwd - - mountPath: /etc/group - name: user - readOnly: true - subPath: etc/group - - mountPath: /etc/shadow - name: user - readOnly: true - subPath: etc/shadow - - mountPath: /etc/gshadow - name: user - readOnly: true - subPath: etc/gshadow - - mountPath: /var/run/secrets/kubernetes.io/serviceaccount - name: kube-api-access-tqsbn - readOnly: true - - image: docker.io/ongres/pgbouncer:v1.17.0-build-6.17 - imagePullPolicy: IfNotPresent - name: pgbouncer - resources: - requests: - cpu: 250m - memory: 64Mi - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/run/postgresql - name: socket - - mountPath: /etc/passwd - name: user - readOnly: true - subPath: etc/passwd - - mountPath: /etc/group - name: user - readOnly: true - subPath: etc/group - - mountPath: /etc/shadow - name: user - readOnly: true - subPath: etc/shadow - - mountPath: /etc/gshadow - name: user - readOnly: true - subPath: etc/gshadow - - mountPath: /etc/pgbouncer - name: pgbouncer-config - - mountPath: /etc/pgbouncer/pgbouncer.ini - name: pgbouncer - readOnly: true - subPath: pgbouncer.ini - - mountPath: /etc/pgbouncer/auth - name: pgbouncer-config - readOnly: true - subPath: auth - - mountPath: /var/run/secrets/kubernetes.io/serviceaccount - name: kube-api-access-tqsbn - readOnly: true - - command: - - /bin/sh - - -ex - - /templates/start-postgres-exporter.sh - env: - - name: PGAPPNAME - value: prometheus-postgres-exporter - - name: DATA_SOURCE_NAME - value: postgresql://postgres@:5432/postgres?host=/var/run/postgresql&sslmode=disable - - name: PG_EXPORTER_EXTEND_QUERY_PATH - value: /var/opt/postgres-exporter/queries.yaml - - name: PG_EXPORTER_CONSTANT_LABELS - value: cluster_name=pgsql-app1-prod-9xdgn, namespace=vshn-postgresql-pgsql-app1-prod-9xdgn - - name: PG_EXPORTER_LOG_LEVEL - value: info - - name: PG_PORT - value: "5432" - - name: PG_RUN_PATH - value: /var/run/postgresql - - name: TEMPLATES_PATH - value: /templates - - name: LOCAL_BIN_SHELL_UTILS_PATH - value: /usr/local/bin/shell-utils - - name: LOCAL_BIN_SETUP_ARBITRARY_USER_SH_PATH - value: /usr/local/bin/setup-arbitrary-user.sh - - name: LOCAL_BIN_SETUP_SCRIPTS_SH_PATH - value: /usr/local/bin/setup-scripts.sh - - name: LOCAL_BIN_RELOCATE_BINARIES_SH_PATH - value: /usr/local/bin/relocate-binaries.sh - - name: LOCAL_BIN_START_PATRONI_SH_PATH - value: /usr/local/bin/start-patroni.sh - - name: LOCAL_BIN_PATRONICTL_PATH - value: /usr/local/bin/patronictl - - name: LOCAL_BIN_POST_INIT_SH_PATH - value: /usr/local/bin/post-init.sh - - name: LOCAL_BIN_CREATE_BACKUP_SH_PATH - value: /usr/local/bin/create-backup.sh - - name: LOCAL_BIN_EXEC_WITH_ENV_PATH - value: /usr/local/bin/exec-with-env - - name: ETC_PASSWD_PATH - value: /etc/passwd - - name: ETC_GROUP_PATH - value: /etc/group - - name: ETC_SHADOW_PATH - value: /etc/shadow - - name: ETC_GSHADOW_PATH - value: /etc/gshadow - - name: LOCAL_BIN_SET_DBOPS_RUNNING_SH_PATH - value: /usr/local/bin/set-dbops-running.sh - - name: LOCAL_BIN_RUN_DBOPS_SH_PATH - value: /usr/local/bin/run-dbops.sh - - name: LOCAL_BIN_SET_DBOPS_RESULT_SH_PATH - value: /usr/local/bin/set-dbops-result.sh - - name: LOCAL_BIN_RUN_PGBENCH_SH_PATH - value: /usr/local/bin/dbops/pgbench/run-pgbench.sh - - name: LOCAL_BIN_SET_PGBENCH_RESULT_SH_PATH - value: /usr/local/bin/dbops/pgbench/set-pgbench-result.sh - - name: LOCAL_BIN_RUN_VACUUM_SH_PATH - value: /usr/local/bin/dbops/vacuum/run-vacuum.sh - - name: LOCAL_BIN_RUN_REPACK_SH_PATH - value: /usr/local/bin/dbops/repack/run-repack.sh - - name: LOCAL_BIN_RUN_MAJOR_VERSION_UPGRADE_SH_PATH - value: /usr/local/bin/dbops/major-version-upgrade/run-major-version-upgrade.sh - - name: LOCAL_BIN_RUN_RESTART_SH_PATH - value: /usr/local/bin/dbops/restart/run-restart.sh - - name: LOCAL_BIN_MAJOR_VERSION_UPGRADE_SH_PATH - value: /usr/local/bin/dbops/major-version-upgrade/major-version-upgrade.sh - - name: LOCAL_BIN_RESET_PATRONI_SH_PATH - value: /usr/local/bin/dbops/major-version-upgrade/reset-patroni.sh - - name: LOCAL_BIN_START_FLUENTBIT_SH_PATH - value: /usr/local/bin/start-fluentbit.sh - - name: LOCAL_BIN_START_POSTGRES_EXPORTER_SH_PATH - value: /usr/local/bin/start-postgres-exporter.sh - image: docker.io/ongres/prometheus-postgres-exporter:v0.11.1-build-6.17 - imagePullPolicy: IfNotPresent - name: prometheus-postgres-exporter - ports: - - containerPort: 9187 - name: pgexporter - protocol: TCP - resources: - requests: - cpu: 32m - memory: 256Mi - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/run/postgresql - name: socket - - mountPath: /templates - name: templates - - mountPath: /var/opt/postgres-exporter/queries.yaml - name: queries - readOnly: true - subPath: queries.yaml - - mountPath: /etc/passwd - name: user - readOnly: true - subPath: etc/passwd - - mountPath: /etc/group - name: user - readOnly: true - subPath: etc/group - - mountPath: /etc/shadow - name: user - readOnly: true - subPath: etc/shadow - - mountPath: /etc/gshadow - name: user - readOnly: true - subPath: etc/gshadow - - mountPath: /var/run/secrets/kubernetes.io/serviceaccount - name: kube-api-access-tqsbn - readOnly: true - - args: - - -c - - while true; do sleep 10; done - command: - - /bin/sh - image: docker.io/ongres/postgres-util:v14.6-build-6.18 - imagePullPolicy: IfNotPresent - name: postgres-util - resources: - requests: - cpu: 32m - memory: 64Mi - stdin: true - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - tty: true - volumeMounts: - - mountPath: /var/run/postgresql - name: socket - - mountPath: /var/lib/postgresql - name: empty-base - - mountPath: /etc/passwd - name: user - readOnly: true - subPath: etc/passwd - - mountPath: /etc/group - name: user - readOnly: true - subPath: etc/group - - mountPath: /etc/shadow - name: user - readOnly: true - subPath: etc/shadow - - mountPath: /etc/gshadow - name: user - readOnly: true - subPath: etc/gshadow - - mountPath: /var/run/secrets/kubernetes.io/serviceaccount - name: kube-api-access-tqsbn - readOnly: true - - env: - - name: CLUSTER_NAME - value: pgsql-app1-prod-9xdgn - - name: CLUSTER_NAMESPACE - value: vshn-postgresql-pgsql-app1-prod-9xdgn - - name: CLUSTER_CONTROLLER_POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - - name: CLUSTER_CONTROLLER_EXTENSIONS_REPOSITORY_URLS - value: https://extensions.stackgres.io/postgres/repository - - name: CLUSTER_CONTROLLER_SKIP_OVERWRITE_SHARED_LIBRARIES - value: "true" - - name: CLUSTER_CONTROLLER_RECONCILE_PGBOUNCER - value: "true" - - name: CLUSTER_CONTROLLER_RECONCILE_PATRONI - value: "true" - - name: CLUSTER_CONTROLLER_RECONCILE_MANAGED_SQL - value: "true" - - name: CLUSTER_CONTROLLER_LOG_LEVEL - - name: CLUSTER_CONTROLLER_SHOW_STACK_TRACES - - name: APP_OPTS - - name: JAVA_OPTS - - name: DEBUG_CLUSTER_CONTROLLER - - name: DEBUG_CLUSTER_CONTROLLER_SUSPEND - image: docker.io/stackgres/cluster-controller:1.4.0 - imagePullPolicy: IfNotPresent - name: cluster-controller - resources: - requests: - cpu: 250m - memory: 512Mi - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /etc/passwd - name: user - readOnly: true - subPath: etc/passwd - - mountPath: /etc/group - name: user - readOnly: true - subPath: etc/group - - mountPath: /etc/shadow - name: user - readOnly: true - subPath: etc/shadow - - mountPath: /etc/gshadow - name: user - readOnly: true - subPath: etc/gshadow - - mountPath: /var/lib/postgresql - name: pgsql-app1-prod-9xdgn-data - - mountPath: /var/run/postgresql - name: socket - - mountPath: /etc/pgbouncer - name: pgbouncer-config - - mountPath: /etc/patroni - name: patroni-config - - mountPath: /var/run/secrets/kubernetes.io/serviceaccount - name: kube-api-access-tqsbn - readOnly: true - dnsPolicy: ClusterFirst - enableServiceLinks: true - hostname: pgsql-app1-prod-9xdgn-0 - initContainers: - - command: - - /bin/sh - - -ex - - /templates/setup-arbitrary-user.sh - env: - - name: TEMPLATES_PATH - value: /templates - - name: LOCAL_BIN_SHELL_UTILS_PATH - value: /usr/local/bin/shell-utils - - name: LOCAL_BIN_SETUP_ARBITRARY_USER_SH_PATH - value: /usr/local/bin/setup-arbitrary-user.sh - - name: LOCAL_BIN_SETUP_SCRIPTS_SH_PATH - value: /usr/local/bin/setup-scripts.sh - - name: LOCAL_BIN_RELOCATE_BINARIES_SH_PATH - value: /usr/local/bin/relocate-binaries.sh - - name: LOCAL_BIN_START_PATRONI_SH_PATH - value: /usr/local/bin/start-patroni.sh - - name: LOCAL_BIN_PATRONICTL_PATH - value: /usr/local/bin/patronictl - - name: LOCAL_BIN_POST_INIT_SH_PATH - value: /usr/local/bin/post-init.sh - - name: LOCAL_BIN_CREATE_BACKUP_SH_PATH - value: /usr/local/bin/create-backup.sh - - name: LOCAL_BIN_EXEC_WITH_ENV_PATH - value: /usr/local/bin/exec-with-env - - name: ETC_PASSWD_PATH - value: /etc/passwd - - name: ETC_GROUP_PATH - value: /etc/group - - name: ETC_SHADOW_PATH - value: /etc/shadow - - name: ETC_GSHADOW_PATH - value: /etc/gshadow - - name: LOCAL_BIN_SET_DBOPS_RUNNING_SH_PATH - value: /usr/local/bin/set-dbops-running.sh - - name: LOCAL_BIN_RUN_DBOPS_SH_PATH - value: /usr/local/bin/run-dbops.sh - - name: LOCAL_BIN_SET_DBOPS_RESULT_SH_PATH - value: /usr/local/bin/set-dbops-result.sh - - name: LOCAL_BIN_RUN_PGBENCH_SH_PATH - value: /usr/local/bin/dbops/pgbench/run-pgbench.sh - - name: LOCAL_BIN_SET_PGBENCH_RESULT_SH_PATH - value: /usr/local/bin/dbops/pgbench/set-pgbench-result.sh - - name: LOCAL_BIN_RUN_VACUUM_SH_PATH - value: /usr/local/bin/dbops/vacuum/run-vacuum.sh - - name: LOCAL_BIN_RUN_REPACK_SH_PATH - value: /usr/local/bin/dbops/repack/run-repack.sh - - name: LOCAL_BIN_RUN_MAJOR_VERSION_UPGRADE_SH_PATH - value: /usr/local/bin/dbops/major-version-upgrade/run-major-version-upgrade.sh - - name: LOCAL_BIN_RUN_RESTART_SH_PATH - value: /usr/local/bin/dbops/restart/run-restart.sh - - name: LOCAL_BIN_MAJOR_VERSION_UPGRADE_SH_PATH - value: /usr/local/bin/dbops/major-version-upgrade/major-version-upgrade.sh - - name: LOCAL_BIN_RESET_PATRONI_SH_PATH - value: /usr/local/bin/dbops/major-version-upgrade/reset-patroni.sh - - name: LOCAL_BIN_START_FLUENTBIT_SH_PATH - value: /usr/local/bin/start-fluentbit.sh - - name: LOCAL_BIN_START_POSTGRES_EXPORTER_SH_PATH - value: /usr/local/bin/start-postgres-exporter.sh - - name: PG_BASE_PATH - value: /var/lib/postgresql - - name: PG_DATA_PATH - value: /var/lib/postgresql/data - - name: HOME - value: /tmp - image: docker.io/ongres/kubectl:v1.25.2-build-6.17 - imagePullPolicy: IfNotPresent - name: setup-arbitrary-user - resources: - requests: - cpu: 100m - memory: 100Mi - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /templates - name: templates - - mountPath: /local/etc - name: user - subPath: etc - - mountPath: /var/run/secrets/kubernetes.io/serviceaccount - name: kube-api-access-tqsbn - readOnly: true - - command: - - /bin/sh - - -ex - - /templates/setup-scripts.sh - env: - - name: LOCAL_BIN_PATH - value: /usr/local/bin - - name: TEMPLATES_PATH - value: /templates - - name: LOCAL_BIN_SHELL_UTILS_PATH - value: /usr/local/bin/shell-utils - - name: LOCAL_BIN_SETUP_ARBITRARY_USER_SH_PATH - value: /usr/local/bin/setup-arbitrary-user.sh - - name: LOCAL_BIN_SETUP_SCRIPTS_SH_PATH - value: /usr/local/bin/setup-scripts.sh - - name: LOCAL_BIN_RELOCATE_BINARIES_SH_PATH - value: /usr/local/bin/relocate-binaries.sh - - name: LOCAL_BIN_START_PATRONI_SH_PATH - value: /usr/local/bin/start-patroni.sh - - name: LOCAL_BIN_PATRONICTL_PATH - value: /usr/local/bin/patronictl - - name: LOCAL_BIN_POST_INIT_SH_PATH - value: /usr/local/bin/post-init.sh - - name: LOCAL_BIN_CREATE_BACKUP_SH_PATH - value: /usr/local/bin/create-backup.sh - - name: LOCAL_BIN_EXEC_WITH_ENV_PATH - value: /usr/local/bin/exec-with-env - - name: ETC_PASSWD_PATH - value: /etc/passwd - - name: ETC_GROUP_PATH - value: /etc/group - - name: ETC_SHADOW_PATH - value: /etc/shadow - - name: ETC_GSHADOW_PATH - value: /etc/gshadow - - name: LOCAL_BIN_SET_DBOPS_RUNNING_SH_PATH - value: /usr/local/bin/set-dbops-running.sh - - name: LOCAL_BIN_RUN_DBOPS_SH_PATH - value: /usr/local/bin/run-dbops.sh - - name: LOCAL_BIN_SET_DBOPS_RESULT_SH_PATH - value: /usr/local/bin/set-dbops-result.sh - - name: LOCAL_BIN_RUN_PGBENCH_SH_PATH - value: /usr/local/bin/dbops/pgbench/run-pgbench.sh - - name: LOCAL_BIN_SET_PGBENCH_RESULT_SH_PATH - value: /usr/local/bin/dbops/pgbench/set-pgbench-result.sh - - name: LOCAL_BIN_RUN_VACUUM_SH_PATH - value: /usr/local/bin/dbops/vacuum/run-vacuum.sh - - name: LOCAL_BIN_RUN_REPACK_SH_PATH - value: /usr/local/bin/dbops/repack/run-repack.sh - - name: LOCAL_BIN_RUN_MAJOR_VERSION_UPGRADE_SH_PATH - value: /usr/local/bin/dbops/major-version-upgrade/run-major-version-upgrade.sh - - name: LOCAL_BIN_RUN_RESTART_SH_PATH - value: /usr/local/bin/dbops/restart/run-restart.sh - - name: LOCAL_BIN_MAJOR_VERSION_UPGRADE_SH_PATH - value: /usr/local/bin/dbops/major-version-upgrade/major-version-upgrade.sh - - name: LOCAL_BIN_RESET_PATRONI_SH_PATH - value: /usr/local/bin/dbops/major-version-upgrade/reset-patroni.sh - - name: LOCAL_BIN_START_FLUENTBIT_SH_PATH - value: /usr/local/bin/start-fluentbit.sh - - name: LOCAL_BIN_START_POSTGRES_EXPORTER_SH_PATH - value: /usr/local/bin/start-postgres-exporter.sh - - name: BASE_ENV_PATH - value: /etc/env - - name: POSTGRES_PORT - value: "5432" - - name: BASE_SECRET_PATH - value: /etc/env/.secret - - name: HOME - value: /tmp - image: docker.io/ongres/kubectl:v1.25.2-build-6.17 - imagePullPolicy: IfNotPresent - name: setup-scripts - resources: - requests: - cpu: 100m - memory: 100Mi - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /templates - name: templates - - mountPath: /usr/local/bin - name: local-bin - - mountPath: /etc/passwd - name: user - readOnly: true - subPath: etc/passwd - - mountPath: /etc/group - name: user - readOnly: true - subPath: etc/group - - mountPath: /etc/shadow - name: user - readOnly: true - subPath: etc/shadow - - mountPath: /etc/gshadow - name: user - readOnly: true - subPath: etc/gshadow - - mountPath: /var/run/secrets/kubernetes.io/serviceaccount - name: kube-api-access-tqsbn - readOnly: true - - command: - - /bin/sh - - -ex - - /templates/relocate-binaries.sh - env: - - name: PG_BASE_PATH - value: /var/lib/postgresql - - name: PG_DATA_PATH - value: /var/lib/postgresql/data - - name: ETC_PASSWD_PATH - value: /etc/passwd - - name: ETC_GROUP_PATH - value: /etc/group - - name: ETC_SHADOW_PATH - value: /etc/shadow - - name: ETC_GSHADOW_PATH - value: /etc/gshadow - - name: PG_EXTENSIONS_BASE_PATH - value: /var/lib/postgresql/extensions - - name: PG_EXTENSIONS_PATH - value: /var/lib/postgresql/extensions/14/6 - - name: PG_EXTENSIONS_BINARIES_PATH - value: /var/lib/postgresql/extensions/14/6/usr/lib/postgresql/14 - - name: PG_EXTENSIONS_BIN_PATH - value: /var/lib/postgresql/extensions/14/6/usr/lib/postgresql/14/bin - - name: PG_EXTENSIONS_LIB_PATH - value: /var/lib/postgresql/extensions/14/6/usr/lib/postgresql/14/lib - - name: PG_EXTENSIONS_SHARE_PATH - value: /var/lib/postgresql/extensions/14/6/usr/share/postgresql/14 - - name: PG_EXTENSIONS_EXTENSION_PATH - value: /var/lib/postgresql/extensions/14/6/usr/share/postgresql/14/extension - - name: PG_EXTENSIONS_LIB64_PATH - value: /var/lib/postgresql/extensions/14/6/usr/lib64 - - name: PG_LIB64_PATH - value: /usr/lib64 - - name: PG_BINARIES_PATH - value: /usr/lib/postgresql/14.6 - - name: PG_BIN_PATH - value: /usr/lib/postgresql/14.6/bin - - name: PG_LIB_PATH - value: /usr/lib/postgresql/14.6/lib - - name: PG_EXTRA_BIN_PATH - value: /usr/lib/postgresql/14.6/extra/bin - - name: PG_EXTRA_LIB_PATH - value: /usr/lib/postgresql/14.6/extra/lib - - name: PG_SHARE_PATH - value: /usr/share/postgresql/14.6 - - name: PG_EXTENSION_PATH - value: /usr/share/postgresql/14.6/extension - - name: PG_RELOCATED_BASE_PATH - value: /var/lib/postgresql/relocated - - name: PG_RELOCATED_PATH - value: /var/lib/postgresql/relocated/14.6 - - name: PG_RELOCATED_LIB64_PATH - value: /var/lib/postgresql/relocated/14.6/usr/lib64 - - name: PG_RELOCATED_BINARIES_PATH - value: /var/lib/postgresql/relocated/14.6/usr/lib/postgresql/14.6 - - name: PG_RELOCATED_BIN_PATH - value: /var/lib/postgresql/relocated/14.6/usr/lib/postgresql/14.6/bin - - name: PG_RELOCATED_LIB_PATH - value: /var/lib/postgresql/relocated/14.6/usr/lib/postgresql/14.6/lib - - name: PG_RELOCATED_SHARE_PATH - value: /var/lib/postgresql/relocated/14.6/usr/share/postgresql//14.6 - - name: PG_RELOCATED_EXTENSION_PATH - value: /var/lib/postgresql/relocated/14.6/usr/share/postgresql//14.6/extension - - name: PG_UPGRADE_PATH - value: /var/lib/postgresql/upgrade - - name: PATH - value: /usr/lib/postgresql/14.6/bin:/usr/lib/postgresql/14.6/extra/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - - name: LD_LIBRARY_PATH - value: /usr/lib/postgresql/14.6/extra/lib - image: docker.io/ongres/patroni:v2.1.4-pg14.6-build-6.18 - imagePullPolicy: IfNotPresent - name: relocate-binaries - resources: - requests: - cpu: 100m - memory: 100Mi - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /templates - name: templates - - mountPath: /var/lib/postgresql - name: pgsql-app1-prod-9xdgn-data - - mountPath: /var/run/secrets/kubernetes.io/serviceaccount - name: kube-api-access-tqsbn - readOnly: true - - command: - - /bin/sh - - -exc - - |- - mkdir -p '/etc/pgbouncer/auth' - test -f '/etc/pgbouncer/pgbouncer-admin-password' - test -f '/etc/pgbouncer/pgbouncer-stats-password' - PGBOUNCER_ADMIN_MD5="$({ - cat '/etc/pgbouncer/pgbouncer-admin-password' - printf '%s' 'pgbouncer_admin' - } | md5sum | cut -d ' ' -f 1)" - PGBOUNCER_STATS_MD5="$({ - cat '/etc/pgbouncer/pgbouncer-stats-password' - printf '%s' 'pgbouncer_stats' - } | md5sum | cut -d ' ' -f 1)" - ( - printf '%s\n' "\"pgbouncer_admin\" \"md5$PGBOUNCER_ADMIN_MD5\"" - printf '%s\n' "\"pgbouncer_stats\" \"md5$PGBOUNCER_STATS_MD5\"" - ) > '/etc/pgbouncer/auth/users.txt' - image: docker.io/ongres/kubectl:v1.25.2-build-6.17 - imagePullPolicy: IfNotPresent - name: pgbouncer-auth-file - resources: - requests: - cpu: 100m - memory: 100Mi - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /etc/pgbouncer - name: pgbouncer-config - - mountPath: /etc/pgbouncer/pgbouncer-admin-password - name: pgbouncer-secrets - readOnly: true - subPath: pgbouncer-admin-password - - mountPath: /etc/pgbouncer/pgbouncer-stats-password - name: pgbouncer-secrets - readOnly: true - subPath: pgbouncer-stats-password - - mountPath: /var/run/secrets/kubernetes.io/serviceaccount - name: kube-api-access-tqsbn - readOnly: true - - env: - - name: COMMAND - value: run-reconciliation-cycle - - name: CLUSTER_NAME - value: pgsql-app1-prod-9xdgn - - name: CLUSTER_NAMESPACE - value: vshn-postgresql-pgsql-app1-prod-9xdgn - - name: CLUSTER_CONTROLLER_POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - - name: CLUSTER_CONTROLLER_EXTENSIONS_REPOSITORY_URLS - value: https://extensions.stackgres.io/postgres/repository - - name: CLUSTER_CONTROLLER_SKIP_OVERWRITE_SHARED_LIBRARIES - value: "false" - - name: CLUSTER_CONTROLLER_RECONCILE_PGBOUNCER - value: "false" - - name: CLUSTER_CONTROLLER_RECONCILE_PATRONI - value: "false" - - name: CLUSTER_CONTROLLER_RECONCILE_MANAGED_SQL - value: "true" - - name: CLUSTER_CONTROLLER_LOG_LEVEL - - name: CLUSTER_CONTROLLER_SHOW_STACK_TRACES - - name: APP_OPTS - - name: DEBUG_CLUSTER_CONTROLLER - - name: DEBUG_CLUSTER_CONTROLLER_SUSPEND - image: docker.io/stackgres/cluster-controller:1.4.0 - imagePullPolicy: IfNotPresent - name: cluster-reconciliation-cycle - resources: - requests: - cpu: 100m - memory: 100Mi - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/postgresql - name: pgsql-app1-prod-9xdgn-data - - mountPath: /var/run/secrets/kubernetes.io/serviceaccount - name: kube-api-access-tqsbn - readOnly: true - nodeName: kindev-worker3 - preemptionPolicy: PreemptLowerPriority - priority: 0 - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - fsGroup: 999 - runAsGroup: 999 - runAsNonRoot: true - runAsUser: 999 - serviceAccount: pgsql-app1-prod-9xdgn-patroni - serviceAccountName: pgsql-app1-prod-9xdgn-patroni - shareProcessNamespace: true - subdomain: pgsql-app1-prod-9xdgn - terminationGracePeriodSeconds: 60 - tolerations: - - effect: NoExecute - key: node.kubernetes.io/not-ready - operator: Exists - tolerationSeconds: 300 - - effect: NoExecute - key: node.kubernetes.io/unreachable - operator: Exists - tolerationSeconds: 300 - volumes: - - name: pgsql-app1-prod-9xdgn-data - persistentVolumeClaim: - claimName: pgsql-app1-prod-9xdgn-data-pgsql-app1-prod-9xdgn-0 - - emptyDir: - medium: Memory - name: socket - - emptyDir: - medium: Memory - name: dshm - - emptyDir: {} - name: log - - emptyDir: {} - name: local-bin - - configMap: - defaultMode: 444 - name: pgsql-app1-prod-9xdgn - name: patroni-env - - name: patroni-secret-env - secret: - defaultMode: 400 - secretName: pgsql-app1-prod-9xdgn - - emptyDir: {} - name: patroni-config - - configMap: - defaultMode: 444 - name: pgsql-app1-prod-9xdgn-backup - name: backup-env - - name: backup-secret - secret: - defaultMode: 444 - secretName: pgsql-app1-prod-9xdgn-backup - - configMap: - defaultMode: 420 - name: pgsql-app1-prod-9xdgn-replicate - name: replicate-env - - name: replicate-secret - secret: - defaultMode: 420 - secretName: pgsql-app1-prod-9xdgn-replicate - - emptyDir: {} - name: user - - configMap: - defaultMode: 420 - name: pgsql-app1-prod-9xdgn-envoy-config - name: envoy - - emptyDir: {} - name: pgbouncer-config - - configMap: - defaultMode: 420 - name: pgsql-app1-prod-9xdgn-connection-pooling-config - name: pgbouncer - - configMap: - defaultMode: 444 - name: pgsql-app1-prod-9xdgn-templates - name: templates - - configMap: - defaultMode: 420 - name: pgsql-app1-prod-9xdgn-prometheus-postgres-exporter-config - name: queries - - emptyDir: {} - name: empty-base - - name: pgbouncer-secrets - secret: - defaultMode: 420 - secretName: pgsql-app1-prod-9xdgn - - name: kube-api-access-tqsbn - projected: - defaultMode: 420 - sources: - - serviceAccountToken: - expirationSeconds: 3607 - path: token - - configMap: - items: - - key: ca.crt - path: ca.crt - name: kube-root-ca.crt - - downwardAPI: - items: - - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - path: namespace -status: - conditions: - - lastProbeTime: null - lastTransitionTime: "2023-02-10T09:55:57Z" - status: "True" - type: Initialized - - lastProbeTime: null - lastTransitionTime: "2023-02-10T09:55:22Z" - message: 'containers with unready status: [patroni envoy pgbouncer prometheus-postgres-exporter - postgres-util cluster-controller]' - reason: ContainersNotReady - status: "False" - type: Ready - - lastProbeTime: null - lastTransitionTime: "2023-02-10T09:55:22Z" - message: 'containers with unready status: [patroni envoy pgbouncer prometheus-postgres-exporter - postgres-util cluster-controller]' - reason: ContainersNotReady - status: "False" - type: ContainersReady - - lastProbeTime: null - lastTransitionTime: "2023-02-10T09:55:22Z" - status: "True" - type: PodScheduled - containerStatuses: - - image: docker.io/stackgres/cluster-controller:1.4.0 - imageID: "" - lastState: {} - name: cluster-controller - ready: false - restartCount: 0 - started: false - state: - waiting: - reason: PodInitializing - - image: docker.io/ongres/envoy:v1.24.0-build-6.18 - imageID: "" - lastState: {} - name: envoy - ready: false - restartCount: 0 - started: false - state: - waiting: - reason: PodInitializing - - image: docker.io/ongres/patroni:v2.1.4-pg14.6-build-6.18 - imageID: "" - lastState: {} - name: patroni - ready: false - restartCount: 0 - started: false - state: - waiting: - reason: PodInitializing - - image: docker.io/ongres/pgbouncer:v1.17.0-build-6.17 - imageID: "" - lastState: {} - name: pgbouncer - ready: false - restartCount: 0 - started: false - state: - waiting: - reason: PodInitializing - - image: docker.io/ongres/postgres-util:v14.6-build-6.18 - imageID: "" - lastState: {} - name: postgres-util - ready: false - restartCount: 0 - started: false - state: - waiting: - reason: PodInitializing - - image: docker.io/ongres/prometheus-postgres-exporter:v0.11.1-build-6.17 - imageID: "" - lastState: {} - name: prometheus-postgres-exporter - ready: false - restartCount: 0 - started: false - state: - waiting: - reason: PodInitializing - hostIP: 172.18.0.2 - initContainerStatuses: - - containerID: containerd://73904376b3b4587c447ff9e370a8f6265b5698923f36489658c3f51b2f7256f9 - image: docker.io/ongres/kubectl:v1.25.2-build-6.17 - imageID: docker.io/ongres/kubectl@sha256:450a8871fbacdfce2600b7d168a6046404db18f62ff7102e0bc6aa37933f4967 - lastState: {} - name: setup-arbitrary-user - ready: true - restartCount: 0 - state: - terminated: - containerID: containerd://73904376b3b4587c447ff9e370a8f6265b5698923f36489658c3f51b2f7256f9 - exitCode: 0 - finishedAt: "2023-02-10T09:55:31Z" - reason: Completed - startedAt: "2023-02-10T09:55:31Z" - - containerID: containerd://2fc66d187eba1d296fd0ae05ed61d6c465b2e0c4f6c037af08d93a8a6d7e0f0e - image: docker.io/ongres/kubectl:v1.25.2-build-6.17 - imageID: docker.io/ongres/kubectl@sha256:450a8871fbacdfce2600b7d168a6046404db18f62ff7102e0bc6aa37933f4967 - lastState: {} - name: setup-scripts - ready: true - restartCount: 0 - state: - terminated: - containerID: containerd://2fc66d187eba1d296fd0ae05ed61d6c465b2e0c4f6c037af08d93a8a6d7e0f0e - exitCode: 0 - finishedAt: "2023-02-10T09:55:33Z" - reason: Completed - startedAt: "2023-02-10T09:55:33Z" - - containerID: containerd://a88f6fa6cbcf4bfb2db348f9816c028ddf76be97ce1e068ae22faf031397e93f - image: docker.io/ongres/patroni:v2.1.4-pg14.6-build-6.18 - imageID: docker.io/ongres/patroni@sha256:6cd573bc96d372f61a5294a452aabb3c45a3f9ab9a0f8301ccab93c914a6e6c7 - lastState: {} - name: relocate-binaries - ready: true - restartCount: 0 - state: - terminated: - containerID: containerd://a88f6fa6cbcf4bfb2db348f9816c028ddf76be97ce1e068ae22faf031397e93f - exitCode: 0 - finishedAt: "2023-02-10T09:55:47Z" - reason: Completed - startedAt: "2023-02-10T09:55:46Z" - - containerID: containerd://349b6eceefe081a080a37a4e749e3f4df320a42c3b0f117c77469af411084004 - image: docker.io/ongres/kubectl:v1.25.2-build-6.17 - imageID: docker.io/ongres/kubectl@sha256:450a8871fbacdfce2600b7d168a6046404db18f62ff7102e0bc6aa37933f4967 - lastState: {} - name: pgbouncer-auth-file - ready: true - restartCount: 0 - state: - terminated: - containerID: containerd://349b6eceefe081a080a37a4e749e3f4df320a42c3b0f117c77469af411084004 - exitCode: 0 - finishedAt: "2023-02-10T09:55:50Z" - reason: Completed - startedAt: "2023-02-10T09:55:50Z" - - containerID: containerd://ed5d8656f6b0f32ec9c0f09f79d48c73a71d5cfcc3ae930a403dfc47db521eca - image: docker.io/stackgres/cluster-controller:1.4.0 - imageID: docker.io/stackgres/cluster-controller@sha256:75a79a949d3f673fea15215db65dc0854b269f4cea4e15bf85789eb3742166ac - lastState: {} - name: cluster-reconciliation-cycle - ready: true - restartCount: 0 - state: - terminated: - containerID: containerd://ed5d8656f6b0f32ec9c0f09f79d48c73a71d5cfcc3ae930a403dfc47db521eca - exitCode: 0 - finishedAt: "2023-02-10T09:55:57Z" - reason: Completed - startedAt: "2023-02-10T09:55:56Z" - phase: Pending - podIP: 10.244.2.7 - podIPs: - - ip: 10.244.2.7 - qosClass: Burstable - startTime: "2023-02-10T09:55:22Z" diff --git a/renovate.json b/renovate.json index 0cdde1aab..1be537acc 100644 --- a/renovate.json +++ b/renovate.json @@ -9,12 +9,18 @@ ], "postUpgradeTasks": { "commands": [ - "make gen-golden-all" + "make -C component gen-golden-all", + "make -C package gen-golden-all" + ], + "fileFilters": [ + "component/tests/golden/**", + "package/tests/golden/**" ], - "fileFilters": [ "tests/golden/**" ], "executionMode": "update" }, - "suppressNotifications": [ "artifactErrors" ], + "suppressNotifications": [ + "artifactErrors" + ], "labels": [ "dependency" ]