From 9f915b63fb97c381850d230d623eeb0a3581b630 Mon Sep 17 00:00:00 2001 From: Maxence Maireaux Date: Fri, 13 Sep 2024 18:39:59 +0200 Subject: [PATCH] chore(operator): remove legacy configuration (#1689) --- components/operator/PROJECT | 18 - .../auth.components/v1beta1/clients_types.go | 80 - .../auth.components/v1beta1/condition.go | 74 - .../v1beta1/groupversion_info.go | 36 - .../auth.components/v1beta1/scope_types.go | 67 - .../auth.components/v1beta1/status.go | 40 - .../v1beta1/zz_generated.deepcopy.go | 371 -- .../auth.components/v1beta2/clients_types.go | 114 - .../auth.components/v1beta2/condition.go | 74 - .../v1beta2/groupversion_info.go | 36 - .../auth.components/v1beta2/scope_types.go | 107 - .../auth.components/v1beta2/status.go | 40 - .../v1beta2/zz_generated.deepcopy.go | 371 -- .../components/v1beta1/auth_types.go | 120 - .../components/v1beta1/collector.go | 29 - .../components/v1beta1/condition.go | 57 - .../components/v1beta1/control_types.go | 69 - .../components/v1beta1/groupversion_info.go | 36 - .../components/v1beta1/image.go | 18 - .../components/v1beta1/ingress.go | 21 - .../components/v1beta1/ledger_types.go | 97 - .../components/v1beta1/monitoring.go | 35 - .../components/v1beta1/payments_types.go | 65 - .../components/v1beta1/postgres.go | 51 - .../components/v1beta1/scale.go | 61 - .../components/v1beta1/search_types.go | 102 - .../v1beta1/searchingester_types.go | 58 - .../components/v1beta1/shared_types.go | 6 - .../components/v1beta1/status.go | 15 - .../components/v1beta1/webhooks_types.go | 59 - .../v1beta1/zz_generated.deepcopy.go | 1338 ----- .../components/v1beta2/auth.go | 32 - .../components/v1beta2/auth_types.go | 88 - .../components/v1beta2/collector.go | 29 - .../components/v1beta2/common.go | 15 - .../components/v1beta2/condition.go | 57 - .../components/v1beta2/control_types.go | 66 - .../v1beta2/counterparties_types.go | 55 - .../components/v1beta2/env.go | 12 - .../components/v1beta2/groupversion_info.go | 36 - .../components/v1beta2/image.go | 27 - .../components/v1beta2/ingress.go | 34 - .../components/v1beta2/ledger_types.go | 90 - .../components/v1beta2/monitoring.go | 35 - .../components/v1beta2/orchestration_types.go | 89 - .../components/v1beta2/payments_types.go | 59 - .../components/v1beta2/postgres.go | 51 - .../components/v1beta2/scale.go | 32 - .../components/v1beta2/search_types.go | 106 - .../components/v1beta2/shared_types.go | 11 - .../components/v1beta2/status.go | 15 - .../components/v1beta2/wallets_types.go | 59 - .../components/v1beta2/webhooks_types.go | 55 - .../v1beta2/zz_generated.deepcopy.go | 1534 ------ .../api/stack.formance.com/v1beta1/auth.go | 32 - .../stack.formance.com/v1beta1/auth_types.go | 30 - .../api/stack.formance.com/v1beta1/common.go | 15 - .../stack.formance.com/v1beta1/condition.go | 44 - .../v1beta1/configuration_types.go | 137 - .../v1beta1/control_types.go | 10 - .../v1beta1/groupversion_info.go | 36 - .../api/stack.formance.com/v1beta1/image.go | 18 - .../api/stack.formance.com/v1beta1/ingress.go | 21 - .../v1beta1/ledger_types.go | 11 - .../v1beta1/license_types.go | 62 - .../stack.formance.com/v1beta1/monitoring.go | 35 - .../v1beta1/payments_types.go | 14 - .../stack.formance.com/v1beta1/postgres.go | 44 - .../api/stack.formance.com/v1beta1/scale.go | 32 - .../v1beta1/search_types.go | 12 - .../v1beta1/shared_types.go | 28 - .../stack.formance.com/v1beta1/stack_types.go | 135 - .../api/stack.formance.com/v1beta1/status.go | 15 - .../v1beta1/webhooks_types.go | 14 - .../v1beta1/zz_generated.deepcopy.go | 1060 ---- .../stack.formance.com/v1beta2/auth_types.go | 18 - .../v1beta2/configuration_types.go | 139 - .../v1beta2/control_types.go | 9 - .../v1beta2/counterparties_types.go | 17 - .../v1beta2/groupversion_info.go | 36 - .../v1beta2/ledger_types.go | 15 - .../v1beta2/orchestration_types.go | 16 - .../v1beta2/payments_types.go | 15 - .../v1beta2/search_types.go | 19 - .../v1beta2/shared_types.go | 24 - .../stack.formance.com/v1beta2/stack_types.go | 127 - .../v1beta2/stack_webhook.go | 48 - .../v1beta2/versions_types.go | 84 - .../v1beta2/wallets_types.go | 14 - .../v1beta2/webhooks_types.go | 17 - .../v1beta2/zz_generated.deepcopy.go | 650 --- .../api/stack.formance.com/v1beta3/auth.go | 8 - .../stack.formance.com/v1beta3/auth_types.go | 13 - .../api/stack.formance.com/v1beta3/broker.go | 23 - .../api/stack.formance.com/v1beta3/common.go | 26 - .../stack.formance.com/v1beta3/condition.go | 50 - .../v1beta3/configuration_types.go | 217 - .../v1beta3/control_types.go | 9 - .../v1beta3/gateway_types.go | 20 - .../v1beta3/groupversion_info.go | 36 - .../api/stack.formance.com/v1beta3/ingress.go | 24 - .../v1beta3/ledger_types.go | 56 - .../v1beta3/migration_types.go | 71 - .../v1beta3/orchestration_types.go | 10 - .../v1beta3/payments_types.go | 12 - .../stack.formance.com/v1beta3/postgres.go | 18 - .../v1beta3/reconciliation_types.go | 10 - .../v1beta3/search_types.go | 64 - .../v1beta3/shared_types.go | 13 - .../stack.formance.com/v1beta3/stack_types.go | 201 - .../v1beta3/stargate_types.go | 9 - .../api/stack.formance.com/v1beta3/status.go | 7 - .../v1beta3/versions_types.go | 80 - .../v1beta3/wallets_types.go | 9 - .../v1beta3/webhooks_types.go | 12 - .../v1beta3/zz_generated.deepcopy.go | 1497 ----- components/operator/cmd/main.go | 2 - .../auth.components.formance.com_clients.yaml | 238 - .../auth.components.formance.com_scopes.yaml | 245 - .../bases/components.formance.com_auths.yaml | 2454 --------- .../components.formance.com_controls.yaml | 1642 ------ ...omponents.formance.com_counterparties.yaml | 543 -- .../components.formance.com_ledgers.yaml | 2584 --------- ...omponents.formance.com_orchestrations.yaml | 1229 ----- .../components.formance.com_payments.yaml | 1216 ---- .../components.formance.com_searches.yaml | 2459 --------- ...mponents.formance.com_searchingesters.yaml | 105 - .../components.formance.com_wallets.yaml | 317 -- .../components.formance.com_webhooks.yaml | 1216 ---- .../stack.formance.com_configurations.yaml | 4877 ----------------- .../bases/stack.formance.com_licenses.yaml | 52 - .../bases/stack.formance.com_migrations.yaml | 84 - .../crd/bases/stack.formance.com_stacks.yaml | 2066 ------- .../bases/stack.formance.com_versions.yaml | 124 - .../operator/config/crd/kustomization.yaml | 4 - components/operator/config/rbac/role.yaml | 104 - ...ck.formance.com_v1beta3_configuration.yaml | 11 - .../stack.formance.com_v1beta3_stack.yaml | 11 - .../stack.formance.com_v1beta3_versions.yaml | 11 - ...ion_configurations.stack.formance.com.yaml | 4877 ----------------- ...inition_migrations.stack.formance.com.yaml | 84 - ...edefinition_stacks.stack.formance.com.yaml | 2066 ------- ...efinition_versions.stack.formance.com.yaml | 124 - ..._v1_clusterrole_formance-manager-role.yaml | 104 - components/operator/internal/resources/all.go | 3 - .../resources/legacy/configurations/init.go | 432 -- .../internal/resources/legacy/stacks/init.go | 495 -- .../resources/legacy/versions/init.go | 43 - .../internal/tests/internal/bootstrap.go | 2 - .../tests/legacystack_controller_test.go | 145 - .../tests/legacyversions_controller_test.go | 38 - .../stack.formance.com/v1beta3/client.go | 41 - .../v1beta3/configuration.go | 92 - .../stack.formance.com/v1beta3/stack.go | 92 - .../stack.formance.com/v1beta3/versions.go | 92 - 155 files changed, 42124 deletions(-) delete mode 100644 components/operator/api/stack.formance.com/auth.components/v1beta1/clients_types.go delete mode 100644 components/operator/api/stack.formance.com/auth.components/v1beta1/condition.go delete mode 100644 components/operator/api/stack.formance.com/auth.components/v1beta1/groupversion_info.go delete mode 100644 components/operator/api/stack.formance.com/auth.components/v1beta1/scope_types.go delete mode 100644 components/operator/api/stack.formance.com/auth.components/v1beta1/status.go delete mode 100644 components/operator/api/stack.formance.com/auth.components/v1beta1/zz_generated.deepcopy.go delete mode 100644 components/operator/api/stack.formance.com/auth.components/v1beta2/clients_types.go delete mode 100644 components/operator/api/stack.formance.com/auth.components/v1beta2/condition.go delete mode 100644 components/operator/api/stack.formance.com/auth.components/v1beta2/groupversion_info.go delete mode 100644 components/operator/api/stack.formance.com/auth.components/v1beta2/scope_types.go delete mode 100644 components/operator/api/stack.formance.com/auth.components/v1beta2/status.go delete mode 100644 components/operator/api/stack.formance.com/auth.components/v1beta2/zz_generated.deepcopy.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/auth_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/collector.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/condition.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/control_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/groupversion_info.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/image.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/ingress.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/ledger_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/monitoring.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/payments_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/postgres.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/scale.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/search_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/searchingester_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/shared_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/status.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/webhooks_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta1/zz_generated.deepcopy.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/auth.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/auth_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/collector.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/common.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/condition.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/control_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/counterparties_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/env.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/groupversion_info.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/image.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/ingress.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/ledger_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/monitoring.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/orchestration_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/payments_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/postgres.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/scale.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/search_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/shared_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/status.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/wallets_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/webhooks_types.go delete mode 100644 components/operator/api/stack.formance.com/components/v1beta2/zz_generated.deepcopy.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/auth.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/auth_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/common.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/condition.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/configuration_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/control_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/groupversion_info.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/image.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/ingress.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/ledger_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/license_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/monitoring.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/payments_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/postgres.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/scale.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/search_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/shared_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/stack_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/status.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/webhooks_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta1/zz_generated.deepcopy.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/auth_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/configuration_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/control_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/counterparties_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/groupversion_info.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/ledger_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/orchestration_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/payments_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/search_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/shared_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/stack_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/stack_webhook.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/versions_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/wallets_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/webhooks_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta2/zz_generated.deepcopy.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/auth.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/auth_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/broker.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/common.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/condition.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/configuration_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/control_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/gateway_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/groupversion_info.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/ingress.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/ledger_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/migration_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/orchestration_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/payments_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/postgres.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/reconciliation_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/search_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/shared_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/stack_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/stargate_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/status.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/versions_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/wallets_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/webhooks_types.go delete mode 100644 components/operator/api/stack.formance.com/v1beta3/zz_generated.deepcopy.go delete mode 100644 components/operator/config/crd/bases/auth.components.formance.com_clients.yaml delete mode 100644 components/operator/config/crd/bases/auth.components.formance.com_scopes.yaml delete mode 100644 components/operator/config/crd/bases/components.formance.com_auths.yaml delete mode 100644 components/operator/config/crd/bases/components.formance.com_controls.yaml delete mode 100644 components/operator/config/crd/bases/components.formance.com_counterparties.yaml delete mode 100644 components/operator/config/crd/bases/components.formance.com_ledgers.yaml delete mode 100644 components/operator/config/crd/bases/components.formance.com_orchestrations.yaml delete mode 100644 components/operator/config/crd/bases/components.formance.com_payments.yaml delete mode 100644 components/operator/config/crd/bases/components.formance.com_searches.yaml delete mode 100644 components/operator/config/crd/bases/components.formance.com_searchingesters.yaml delete mode 100644 components/operator/config/crd/bases/components.formance.com_wallets.yaml delete mode 100644 components/operator/config/crd/bases/components.formance.com_webhooks.yaml delete mode 100644 components/operator/config/crd/bases/stack.formance.com_configurations.yaml delete mode 100644 components/operator/config/crd/bases/stack.formance.com_licenses.yaml delete mode 100644 components/operator/config/crd/bases/stack.formance.com_migrations.yaml delete mode 100644 components/operator/config/crd/bases/stack.formance.com_stacks.yaml delete mode 100644 components/operator/config/crd/bases/stack.formance.com_versions.yaml delete mode 100644 components/operator/config/samples/stack.formance.com_v1beta3_configuration.yaml delete mode 100644 components/operator/config/samples/stack.formance.com_v1beta3_stack.yaml delete mode 100644 components/operator/config/samples/stack.formance.com_v1beta3_versions.yaml delete mode 100644 components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_configurations.stack.formance.com.yaml delete mode 100644 components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_migrations.stack.formance.com.yaml delete mode 100644 components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_stacks.stack.formance.com.yaml delete mode 100644 components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_versions.stack.formance.com.yaml delete mode 100644 components/operator/internal/resources/legacy/configurations/init.go delete mode 100644 components/operator/internal/resources/legacy/stacks/init.go delete mode 100644 components/operator/internal/resources/legacy/versions/init.go delete mode 100644 components/operator/internal/tests/legacystack_controller_test.go delete mode 100644 components/operator/internal/tests/legacyversions_controller_test.go delete mode 100644 components/operator/pkg/client/stack.formance.com/v1beta3/client.go delete mode 100644 components/operator/pkg/client/stack.formance.com/v1beta3/configuration.go delete mode 100644 components/operator/pkg/client/stack.formance.com/v1beta3/stack.go delete mode 100644 components/operator/pkg/client/stack.formance.com/v1beta3/versions.go diff --git a/components/operator/PROJECT b/components/operator/PROJECT index f28660877d..a5607ad900 100644 --- a/components/operator/PROJECT +++ b/components/operator/PROJECT @@ -136,24 +136,6 @@ resources: kind: Stargate path: github.com/formancehq/operator/api/v1beta1 version: v1beta1 -- api: - crdVersion: v1 - group: stack.formance.com - kind: Stack - path: github.com/formancehq/operator/api/stack.formance.com/v1beta3 - version: v1beta3 -- api: - crdVersion: v1 - group: stack.formance.com - kind: Configuration - path: github.com/formancehq/operator/api/stack.formance.com/v1beta3 - version: v1beta3 -- api: - crdVersion: v1 - group: stack.formance.com - kind: Versions - path: github.com/formancehq/operator/api/stack.formance.com/v1beta3 - version: v1beta3 - api: crdVersion: v1 group: formance.com diff --git a/components/operator/api/stack.formance.com/auth.components/v1beta1/clients_types.go b/components/operator/api/stack.formance.com/auth.components/v1beta1/clients_types.go deleted file mode 100644 index eb2f441093..0000000000 --- a/components/operator/api/stack.formance.com/auth.components/v1beta1/clients_types.go +++ /dev/null @@ -1,80 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type ClientConfiguration struct { - // +optional - Public bool `json:"public"` - // +optional - Description *string `json:"description,omitempty"` - // +optional - RedirectUris []string `json:"redirectUris,omitempty"` - // +optional - PostLogoutRedirectUris []string `json:"postLogoutRedirectUris,omitempty"` - // +optional - Scopes []string `json:"scopes,omitempty"` -} - -type StaticClient struct { - ClientConfiguration `json:",inline" yaml:",inline"` - ID string `json:"id" yaml:"id"` - // +optional - Secrets []string `json:"secrets" yaml:"secrets"` -} - -type ClientSpec struct { - ClientConfiguration `json:",inline"` - AuthServerReference string `json:"authServerReference"` -} - -// ClientStatus defines the observed state of Client -type ClientStatus struct { - Status `json:",inline"` - AuthServerID string `json:"authServerID,omitempty"` - // +optional - Scopes map[string]string `json:"scopes"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:printcolumn:name="Server ID",type="string",JSONPath=".status.authServerID",description="Auth server ID" - -// Client is the Schema for the oauths API -type Client struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec ClientSpec `json:"spec,omitempty"` - Status ClientStatus `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// ClientList contains a list of Client -type ClientList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Client `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Client{}, &ClientList{}) -} diff --git a/components/operator/api/stack.formance.com/auth.components/v1beta1/condition.go b/components/operator/api/stack.formance.com/auth.components/v1beta1/condition.go deleted file mode 100644 index d8cbd2eb26..0000000000 --- a/components/operator/api/stack.formance.com/auth.components/v1beta1/condition.go +++ /dev/null @@ -1,74 +0,0 @@ -package v1beta1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type Condition struct { - // type of condition in CamelCase or in foo.example.com/CamelCase. - // --- - // Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - // useful (see .node.status.conditions), the ability to deconflict is important. - // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$` - // +kubebuilder:validation:MaxLength=316 - Type string `json:"type" protobuf:"bytes,1,opt,name=type"` - // status of the condition, one of True, False, Unknown. - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Enum=True;False;Unknown - Status metav1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status"` - // observedGeneration represents the .metadata.generation that the condition was set based upon. - // For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - // with respect to the current state of the instance. - // +kubebuilder:validation:Required - // +kubebuilder:validation:Minimum=0 - ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,3,opt,name=observedGeneration"` - // lastTransitionTime is the last time the condition transitioned from one status to another. - // This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Type=string - // +kubebuilder:validation:Format=date-time - LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,4,opt,name=lastTransitionTime"` - // message is a human readable message indicating details about the transition. - // This may be an empty string. - // +required - // +kubebuilder:validation:Optional - // +kubebuilder:validation:MaxLength=32768 - Message string `json:"message,omitempty" protobuf:"bytes,6,opt,name=message"` -} - -type Conditions []Condition - -func (conditions *Conditions) Set(condition Condition) { - if conditions == nil { - *conditions = Conditions{} - } - for i, c := range *conditions { - if c.Type == condition.Type { - (*conditions)[i] = condition - return - } - } - *conditions = append(*conditions, condition) -} - -func (c *Conditions) Remove(t string) { - conditions := make([]Condition, 0) - for _, condition := range *c { - if condition.Type == t { - continue - } - conditions = append(conditions, condition) - } - *c = conditions -} - -const ( - ConditionTypeReady = "Ready" - ConditionTypeProgressing = "Progressing" - ConditionTypeError = "Error" -) diff --git a/components/operator/api/stack.formance.com/auth.components/v1beta1/groupversion_info.go b/components/operator/api/stack.formance.com/auth.components/v1beta1/groupversion_info.go deleted file mode 100644 index 4ebf0b37f2..0000000000 --- a/components/operator/api/stack.formance.com/auth.components/v1beta1/groupversion_info.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1beta1 contains API Schema definitions for the auth.components v1beta1 API group -// +kubebuilder:object:generate=true -// +groupName=auth.components.formance.com -package v1beta1 - -import ( - "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" -) - -var ( - // GroupVersion is group version used to register these objects - GroupVersion = schema.GroupVersion{Group: "auth.components.formance.com", Version: "v1beta1"} - - // SchemeBuilder is used to add go types to the GroupVersionKind scheme - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} - - // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme -) diff --git a/components/operator/api/stack.formance.com/auth.components/v1beta1/scope_types.go b/components/operator/api/stack.formance.com/auth.components/v1beta1/scope_types.go deleted file mode 100644 index b2f2d622ed..0000000000 --- a/components/operator/api/stack.formance.com/auth.components/v1beta1/scope_types.go +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type ScopeSpec struct { - Label string `json:"label"` - // +optional - Transient []string `json:"transient"` - AuthServerReference string `json:"authServerReference"` -} - -type TransientScopeStatus struct { - ObservedGeneration int64 `json:"observedGeneration"` - AuthServerID string `json:"authServerID"` - Date string `json:"date"` -} - -// ScopeStatus defines the observed state of Scope -type ScopeStatus struct { - Status `json:",inline"` - AuthServerID string `json:"authServerID,omitempty"` - Transient map[string]TransientScopeStatus `json:"transient,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:printcolumn:name="Server ID",type="string",JSONPath=".status.authServerID",description="Auth server ID" - -// Scope is the Schema for the scopes API -type Scope struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec ScopeSpec `json:"spec,omitempty"` - Status ScopeStatus `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// ScopeList contains a list of Scope -type ScopeList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Scope `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Scope{}, &ScopeList{}) -} diff --git a/components/operator/api/stack.formance.com/auth.components/v1beta1/status.go b/components/operator/api/stack.formance.com/auth.components/v1beta1/status.go deleted file mode 100644 index 764641a769..0000000000 --- a/components/operator/api/stack.formance.com/auth.components/v1beta1/status.go +++ /dev/null @@ -1,40 +0,0 @@ -package v1beta1 - -type Status struct { - // +patchMergeKey=type - // +patchStrategy=merge - Conditions Conditions `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` -} - -func (in *Status) GetConditions() []Condition { - return in.Conditions -} - -func (in *Status) GetCondition(conditionType string) *Condition { - if in != nil { - for _, condition := range in.Conditions { - if condition.Type == conditionType { - return &condition - } - } - } - return nil -} - -func (in *Status) SetCondition(condition Condition) { - for i, c := range in.Conditions { - if c.Type == condition.Type { - in.Conditions[i] = condition - return - } - } - in.Conditions = append(in.Conditions, condition) -} - -type ReplicationStatus struct { - Status `json:",inline"` - // +optional - Replicas int32 `json:"replicas"` - // +optional - Selector string `json:"selector"` -} diff --git a/components/operator/api/stack.formance.com/auth.components/v1beta1/zz_generated.deepcopy.go b/components/operator/api/stack.formance.com/auth.components/v1beta1/zz_generated.deepcopy.go deleted file mode 100644 index 3950a51fd8..0000000000 --- a/components/operator/api/stack.formance.com/auth.components/v1beta1/zz_generated.deepcopy.go +++ /dev/null @@ -1,371 +0,0 @@ -//go:build !ignore_autogenerated - -/* -Copyright 2023. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by controller-gen. DO NOT EDIT. - -package v1beta1 - -import ( - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Client) DeepCopyInto(out *Client) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Client. -func (in *Client) DeepCopy() *Client { - if in == nil { - return nil - } - out := new(Client) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Client) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClientConfiguration) DeepCopyInto(out *ClientConfiguration) { - *out = *in - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.RedirectUris != nil { - in, out := &in.RedirectUris, &out.RedirectUris - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.PostLogoutRedirectUris != nil { - in, out := &in.PostLogoutRedirectUris, &out.PostLogoutRedirectUris - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Scopes != nil { - in, out := &in.Scopes, &out.Scopes - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientConfiguration. -func (in *ClientConfiguration) DeepCopy() *ClientConfiguration { - if in == nil { - return nil - } - out := new(ClientConfiguration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClientList) DeepCopyInto(out *ClientList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Client, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientList. -func (in *ClientList) DeepCopy() *ClientList { - if in == nil { - return nil - } - out := new(ClientList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClientList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClientSpec) DeepCopyInto(out *ClientSpec) { - *out = *in - in.ClientConfiguration.DeepCopyInto(&out.ClientConfiguration) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientSpec. -func (in *ClientSpec) DeepCopy() *ClientSpec { - if in == nil { - return nil - } - out := new(ClientSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClientStatus) DeepCopyInto(out *ClientStatus) { - *out = *in - in.Status.DeepCopyInto(&out.Status) - if in.Scopes != nil { - in, out := &in.Scopes, &out.Scopes - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientStatus. -func (in *ClientStatus) DeepCopy() *ClientStatus { - if in == nil { - return nil - } - out := new(ClientStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Condition) DeepCopyInto(out *Condition) { - *out = *in - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition. -func (in *Condition) DeepCopy() *Condition { - if in == nil { - return nil - } - out := new(Condition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in Conditions) DeepCopyInto(out *Conditions) { - { - in := &in - *out = make(Conditions, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Conditions. -func (in Conditions) DeepCopy() Conditions { - if in == nil { - return nil - } - out := new(Conditions) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ReplicationStatus) DeepCopyInto(out *ReplicationStatus) { - *out = *in - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationStatus. -func (in *ReplicationStatus) DeepCopy() *ReplicationStatus { - if in == nil { - return nil - } - out := new(ReplicationStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Scope) DeepCopyInto(out *Scope) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scope. -func (in *Scope) DeepCopy() *Scope { - if in == nil { - return nil - } - out := new(Scope) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Scope) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ScopeList) DeepCopyInto(out *ScopeList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Scope, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopeList. -func (in *ScopeList) DeepCopy() *ScopeList { - if in == nil { - return nil - } - out := new(ScopeList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ScopeList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ScopeSpec) DeepCopyInto(out *ScopeSpec) { - *out = *in - if in.Transient != nil { - in, out := &in.Transient, &out.Transient - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopeSpec. -func (in *ScopeSpec) DeepCopy() *ScopeSpec { - if in == nil { - return nil - } - out := new(ScopeSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ScopeStatus) DeepCopyInto(out *ScopeStatus) { - *out = *in - in.Status.DeepCopyInto(&out.Status) - if in.Transient != nil { - in, out := &in.Transient, &out.Transient - *out = make(map[string]TransientScopeStatus, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopeStatus. -func (in *ScopeStatus) DeepCopy() *ScopeStatus { - if in == nil { - return nil - } - out := new(ScopeStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StaticClient) DeepCopyInto(out *StaticClient) { - *out = *in - in.ClientConfiguration.DeepCopyInto(&out.ClientConfiguration) - if in.Secrets != nil { - in, out := &in.Secrets, &out.Secrets - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StaticClient. -func (in *StaticClient) DeepCopy() *StaticClient { - if in == nil { - return nil - } - out := new(StaticClient) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Status) DeepCopyInto(out *Status) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Status. -func (in *Status) DeepCopy() *Status { - if in == nil { - return nil - } - out := new(Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TransientScopeStatus) DeepCopyInto(out *TransientScopeStatus) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransientScopeStatus. -func (in *TransientScopeStatus) DeepCopy() *TransientScopeStatus { - if in == nil { - return nil - } - out := new(TransientScopeStatus) - in.DeepCopyInto(out) - return out -} diff --git a/components/operator/api/stack.formance.com/auth.components/v1beta2/clients_types.go b/components/operator/api/stack.formance.com/auth.components/v1beta2/clients_types.go deleted file mode 100644 index e69ef79b6d..0000000000 --- a/components/operator/api/stack.formance.com/auth.components/v1beta2/clients_types.go +++ /dev/null @@ -1,114 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type ClientConfiguration struct { - // +optional - Public bool `json:"public"` - // +optional - Description *string `json:"description,omitempty"` - // +optional - RedirectUris []string `json:"redirectUris,omitempty"` - // +optional - PostLogoutRedirectUris []string `json:"postLogoutRedirectUris,omitempty"` - // +optional - Scopes []string `json:"scopes,omitempty"` -} - -func (cfg ClientConfiguration) WithAdditionalScopes(scopes ...string) ClientConfiguration { - cfg.Scopes = append(cfg.Scopes, scopes...) - return cfg -} - -func (cfg ClientConfiguration) WithRedirectUris(redirectUris ...string) ClientConfiguration { - cfg.RedirectUris = append(cfg.RedirectUris, redirectUris...) - return cfg -} - -func (cfg ClientConfiguration) WithPostLogoutRedirectUris(redirectUris ...string) ClientConfiguration { - cfg.PostLogoutRedirectUris = append(cfg.PostLogoutRedirectUris, redirectUris...) - return cfg -} - -func NewClientConfiguration() ClientConfiguration { - return ClientConfiguration{ - Scopes: []string{"openid"}, // Required scope - } -} - -type StaticClient struct { - ClientConfiguration `json:",inline" yaml:",inline"` - ID string `json:"id" yaml:"id"` - // +optional - Secrets []string `json:"secrets" yaml:"secrets"` -} - -type ClientSpec struct { - ClientConfiguration `json:",inline"` - AuthServerReference string `json:"authServerReference"` -} - -// ClientStatus defines the observed state of Client -type ClientStatus struct { - Status `json:",inline"` - AuthServerID string `json:"authServerID,omitempty"` - // +optional - Scopes map[string]string `json:"scopes"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:printcolumn:name="Server ID",type="string",JSONPath=".status.authServerID",description="Auth server ID" -//+kubebuilder:storageversion - -// Client is the Schema for the oauths API -type Client struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec ClientSpec `json:"spec,omitempty"` - Status ClientStatus `json:"status,omitempty"` -} - -func (in *Client) AuthServerReference() string { - return in.Spec.AuthServerReference -} - -func (in *Client) IsCreatedOnAuthServer() bool { - return in.Status.AuthServerID != "" -} - -func (in *Client) ClearAuthServerID() { - in.Status.AuthServerID = "" -} - -//+kubebuilder:object:root=true - -// ClientList contains a list of Client -type ClientList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Client `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Client{}, &ClientList{}) -} diff --git a/components/operator/api/stack.formance.com/auth.components/v1beta2/condition.go b/components/operator/api/stack.formance.com/auth.components/v1beta2/condition.go deleted file mode 100644 index edb2f438d4..0000000000 --- a/components/operator/api/stack.formance.com/auth.components/v1beta2/condition.go +++ /dev/null @@ -1,74 +0,0 @@ -package v1beta2 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type Condition struct { - // type of condition in CamelCase or in foo.example.com/CamelCase. - // --- - // Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - // useful (see .node.status.conditions), the ability to deconflict is important. - // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$` - // +kubebuilder:validation:MaxLength=316 - Type string `json:"type" protobuf:"bytes,1,opt,name=type"` - // status of the condition, one of True, False, Unknown. - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Enum=True;False;Unknown - Status metav1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status"` - // observedGeneration represents the .metadata.generation that the condition was set based upon. - // For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - // with respect to the current state of the instance. - // +kubebuilder:validation:Required - // +kubebuilder:validation:Minimum=0 - ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,3,opt,name=observedGeneration"` - // lastTransitionTime is the last time the condition transitioned from one status to another. - // This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Type=string - // +kubebuilder:validation:Format=date-time - LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,4,opt,name=lastTransitionTime"` - // message is a human readable message indicating details about the transition. - // This may be an empty string. - // +required - // +kubebuilder:validation:Optional - // +kubebuilder:validation:MaxLength=32768 - Message string `json:"message,omitempty" protobuf:"bytes,6,opt,name=message"` -} - -type Conditions []Condition - -func (conditions *Conditions) Set(condition Condition) { - if conditions == nil { - *conditions = Conditions{} - } - for i, c := range *conditions { - if c.Type == condition.Type { - (*conditions)[i] = condition - return - } - } - *conditions = append(*conditions, condition) -} - -func (c *Conditions) Remove(t string) { - conditions := make([]Condition, 0) - for _, condition := range *c { - if condition.Type == t { - continue - } - conditions = append(conditions, condition) - } - *c = conditions -} - -const ( - ConditionTypeReady = "Ready" - ConditionTypeProgressing = "Progressing" - ConditionTypeError = "Error" -) diff --git a/components/operator/api/stack.formance.com/auth.components/v1beta2/groupversion_info.go b/components/operator/api/stack.formance.com/auth.components/v1beta2/groupversion_info.go deleted file mode 100644 index 82b210d044..0000000000 --- a/components/operator/api/stack.formance.com/auth.components/v1beta2/groupversion_info.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1beta2 contains API Schema definitions for the auth.components v1beta2 API group -// +kubebuilder:object:generate=true -// +groupName=auth.components.formance.com -package v1beta2 - -import ( - "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" -) - -var ( - // GroupVersion is group version used to register these objects - GroupVersion = schema.GroupVersion{Group: "auth.components.formance.com", Version: "v1beta2"} - - // SchemeBuilder is used to add go types to the GroupVersionKind scheme - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} - - // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme -) diff --git a/components/operator/api/stack.formance.com/auth.components/v1beta2/scope_types.go b/components/operator/api/stack.formance.com/auth.components/v1beta2/scope_types.go deleted file mode 100644 index 7c63f350a0..0000000000 --- a/components/operator/api/stack.formance.com/auth.components/v1beta2/scope_types.go +++ /dev/null @@ -1,107 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - "time" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// ScopeSpec defines the desired state of Scope -type ScopeSpec struct { - Label string `json:"label"` - // +optional - Transient []string `json:"transient"` - AuthServerReference string `json:"authServerReference"` -} - -type TransientScopeStatus struct { - ObservedGeneration int64 `json:"observedGeneration"` - AuthServerID string `json:"authServerID"` - Date string `json:"date"` -} - -// ScopeStatus defines the observed state of Scope -type ScopeStatus struct { - Status `json:",inline"` - AuthServerID string `json:"authServerID,omitempty"` - Transient map[string]TransientScopeStatus `json:"transient,omitempty"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:printcolumn:name="Server ID",type="string",JSONPath=".status.authServerID",description="Auth server ID" -//+kubebuilder:storageversion - -// Scope is the Schema for the scopes API -type Scope struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec ScopeSpec `json:"spec,omitempty"` - Status ScopeStatus `json:"status,omitempty"` -} - -func (s *Scope) AuthServerReference() string { - return s.Spec.AuthServerReference -} - -func (s *Scope) IsCreatedOnAuthServer() bool { - return s.Status.AuthServerID != "" -} - -func (s *Scope) ClearAuthServerID() { - s.Status.AuthServerID = "" -} - -func (s *Scope) SetRegisteredTransientScope(transientScope *Scope) { - if s.Status.Transient == nil { - s.Status.Transient = map[string]TransientScopeStatus{} - } - s.Status.Transient[transientScope.Name] = TransientScopeStatus{ - ObservedGeneration: transientScope.Generation, - AuthServerID: transientScope.Status.AuthServerID, - Date: time.Now().Format(time.RFC3339), - } -} - -func NewScope(name, label, authReference string, transient ...string) *Scope { - return &Scope{ - ObjectMeta: metav1.ObjectMeta{ - Name: name, - }, - Spec: ScopeSpec{ - Label: label, - Transient: transient, - AuthServerReference: authReference, - }, - } -} - -//+kubebuilder:object:root=true - -// ScopeList contains a list of Scope -type ScopeList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Scope `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Scope{}, &ScopeList{}) -} diff --git a/components/operator/api/stack.formance.com/auth.components/v1beta2/status.go b/components/operator/api/stack.formance.com/auth.components/v1beta2/status.go deleted file mode 100644 index 626933fcc6..0000000000 --- a/components/operator/api/stack.formance.com/auth.components/v1beta2/status.go +++ /dev/null @@ -1,40 +0,0 @@ -package v1beta2 - -type Status struct { - // +patchMergeKey=type - // +patchStrategy=merge - Conditions Conditions `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` -} - -func (in *Status) GetConditions() []Condition { - return in.Conditions -} - -func (in *Status) GetCondition(conditionType string) *Condition { - if in != nil { - for _, condition := range in.Conditions { - if condition.Type == conditionType { - return &condition - } - } - } - return nil -} - -func (in *Status) SetCondition(condition Condition) { - for i, c := range in.Conditions { - if c.Type == condition.Type { - in.Conditions[i] = condition - return - } - } - in.Conditions = append(in.Conditions, condition) -} - -type ReplicationStatus struct { - Status `json:",inline"` - // +optional - Replicas int32 `json:"replicas"` - // +optional - Selector string `json:"selector"` -} diff --git a/components/operator/api/stack.formance.com/auth.components/v1beta2/zz_generated.deepcopy.go b/components/operator/api/stack.formance.com/auth.components/v1beta2/zz_generated.deepcopy.go deleted file mode 100644 index 4da5002198..0000000000 --- a/components/operator/api/stack.formance.com/auth.components/v1beta2/zz_generated.deepcopy.go +++ /dev/null @@ -1,371 +0,0 @@ -//go:build !ignore_autogenerated - -/* -Copyright 2023. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by controller-gen. DO NOT EDIT. - -package v1beta2 - -import ( - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Client) DeepCopyInto(out *Client) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Client. -func (in *Client) DeepCopy() *Client { - if in == nil { - return nil - } - out := new(Client) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Client) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClientConfiguration) DeepCopyInto(out *ClientConfiguration) { - *out = *in - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.RedirectUris != nil { - in, out := &in.RedirectUris, &out.RedirectUris - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.PostLogoutRedirectUris != nil { - in, out := &in.PostLogoutRedirectUris, &out.PostLogoutRedirectUris - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Scopes != nil { - in, out := &in.Scopes, &out.Scopes - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientConfiguration. -func (in *ClientConfiguration) DeepCopy() *ClientConfiguration { - if in == nil { - return nil - } - out := new(ClientConfiguration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClientList) DeepCopyInto(out *ClientList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Client, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientList. -func (in *ClientList) DeepCopy() *ClientList { - if in == nil { - return nil - } - out := new(ClientList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ClientList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClientSpec) DeepCopyInto(out *ClientSpec) { - *out = *in - in.ClientConfiguration.DeepCopyInto(&out.ClientConfiguration) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientSpec. -func (in *ClientSpec) DeepCopy() *ClientSpec { - if in == nil { - return nil - } - out := new(ClientSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClientStatus) DeepCopyInto(out *ClientStatus) { - *out = *in - in.Status.DeepCopyInto(&out.Status) - if in.Scopes != nil { - in, out := &in.Scopes, &out.Scopes - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientStatus. -func (in *ClientStatus) DeepCopy() *ClientStatus { - if in == nil { - return nil - } - out := new(ClientStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Condition) DeepCopyInto(out *Condition) { - *out = *in - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition. -func (in *Condition) DeepCopy() *Condition { - if in == nil { - return nil - } - out := new(Condition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in Conditions) DeepCopyInto(out *Conditions) { - { - in := &in - *out = make(Conditions, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Conditions. -func (in Conditions) DeepCopy() Conditions { - if in == nil { - return nil - } - out := new(Conditions) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ReplicationStatus) DeepCopyInto(out *ReplicationStatus) { - *out = *in - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationStatus. -func (in *ReplicationStatus) DeepCopy() *ReplicationStatus { - if in == nil { - return nil - } - out := new(ReplicationStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Scope) DeepCopyInto(out *Scope) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scope. -func (in *Scope) DeepCopy() *Scope { - if in == nil { - return nil - } - out := new(Scope) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Scope) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ScopeList) DeepCopyInto(out *ScopeList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Scope, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopeList. -func (in *ScopeList) DeepCopy() *ScopeList { - if in == nil { - return nil - } - out := new(ScopeList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ScopeList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ScopeSpec) DeepCopyInto(out *ScopeSpec) { - *out = *in - if in.Transient != nil { - in, out := &in.Transient, &out.Transient - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopeSpec. -func (in *ScopeSpec) DeepCopy() *ScopeSpec { - if in == nil { - return nil - } - out := new(ScopeSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ScopeStatus) DeepCopyInto(out *ScopeStatus) { - *out = *in - in.Status.DeepCopyInto(&out.Status) - if in.Transient != nil { - in, out := &in.Transient, &out.Transient - *out = make(map[string]TransientScopeStatus, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopeStatus. -func (in *ScopeStatus) DeepCopy() *ScopeStatus { - if in == nil { - return nil - } - out := new(ScopeStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StaticClient) DeepCopyInto(out *StaticClient) { - *out = *in - in.ClientConfiguration.DeepCopyInto(&out.ClientConfiguration) - if in.Secrets != nil { - in, out := &in.Secrets, &out.Secrets - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StaticClient. -func (in *StaticClient) DeepCopy() *StaticClient { - if in == nil { - return nil - } - out := new(StaticClient) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Status) DeepCopyInto(out *Status) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Status. -func (in *Status) DeepCopy() *Status { - if in == nil { - return nil - } - out := new(Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TransientScopeStatus) DeepCopyInto(out *TransientScopeStatus) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransientScopeStatus. -func (in *TransientScopeStatus) DeepCopy() *TransientScopeStatus { - if in == nil { - return nil - } - out := new(TransientScopeStatus) - in.DeepCopyInto(out) - return out -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/auth_types.go b/components/operator/api/stack.formance.com/components/v1beta1/auth_types.go deleted file mode 100644 index 993592241a..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/auth_types.go +++ /dev/null @@ -1,120 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - "github.com/formancehq/operator/api/stack.formance.com/auth.components/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type OAuth2ConfigSpec struct { - - // +required - IntrospectUrl string `json:"introspectUrl"` - - // +optional - Audiences []string `json:"audiences"` - - // +optional - AudienceWildcard bool `json:"audienceWildcard"` - - //+optional - ProtectedByScopes bool `json:"ProtectedByScopes"` -} - -type HTTPBasicConfigSpec struct { - // +optional - Enabled bool `json:"enabled"` - - // +optional - Credentials map[string]string `json:"credentials"` -} - -type AuthConfigSpec struct { - // +optional - OAuth2 *OAuth2ConfigSpec `json:"oauth2,omitempty"` - - // +optional - HTTPBasic *HTTPBasicConfigSpec `json:"basic,omitempty"` -} - -type DelegatedOIDCServerConfiguration struct { - // +optional - Issuer string `json:"issuer,omitempty"` - // +optional - IssuerFrom *ConfigSource `json:"issuerFrom,omitempty"` - // +optional - ClientID string `json:"clientID,omitempty"` - // +optional - ClientIDFrom *ConfigSource `json:"clientIDFrom,omitempty"` - // +optional - ClientSecret string `json:"clientSecret,omitempty"` - // +optional - ClientSecretFrom *ConfigSource `json:"clientSecretFrom,omitempty"` -} - -type AuthSpec struct { - Scalable `json:",inline"` - ImageHolder `json:",inline"` - Postgres PostgresConfigCreateDatabase `json:"postgres"` - BaseURL string `json:"baseURL"` - - // SigningKey is a private key - // The signing key is used by the server to sign JWT tokens - // The value of this config will be copied to a secret and injected inside - // the env vars of the server using secret mapping. - // If not specified, a key will be automatically generated. - // +optional - SigningKey string `json:"signingKey"` - DevMode bool `json:"devMode"` - // +optional - Ingress *IngressSpec `json:"ingress"` - - DelegatedOIDCServer DelegatedOIDCServerConfiguration `json:"delegatedOIDCServer"` - - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` - - // +optional - StaticClients []v1beta1.StaticClient `json:"staticClients"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector - -// Auth is the Schema for the auths API -type Auth struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec AuthSpec `json:"spec,omitempty"` - Status ReplicationStatus `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// AuthList contains a list of Auth -type AuthList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Auth `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Auth{}, &AuthList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/collector.go b/components/operator/api/stack.formance.com/components/v1beta1/collector.go deleted file mode 100644 index d4c1abd546..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/collector.go +++ /dev/null @@ -1,29 +0,0 @@ -package v1beta1 - -type KafkaSASLConfig struct { - // +optional - Username string `json:"username,omitempty"` - // +optional - UsernameFrom *ConfigSource `json:"usernameFrom,omitempty"` - // +optional - Password string `json:"password,omitempty"` - // +optional - PasswordFrom *ConfigSource `json:"passwordFrom,omitempty"` - Mechanism string `json:"mechanism"` - ScramSHASize string `json:"scramSHASize"` -} - -type KafkaConfig struct { - // +optional - Brokers []string `json:"brokers"` - // +optional - BrokersFrom *ConfigSource `json:"brokersFrom"` - // +optional - TLS bool `json:"tls"` - // +optional - SASL *KafkaSASLConfig `json:"sasl,omitempty"` -} - -type NatsConfig struct { - URL string `json:"url"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/condition.go b/components/operator/api/stack.formance.com/components/v1beta1/condition.go deleted file mode 100644 index 507215f423..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/condition.go +++ /dev/null @@ -1,57 +0,0 @@ -package v1beta1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type Condition struct { - // type of condition in CamelCase or in foo.example.com/CamelCase. - // --- - // Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - // useful (see .node.status.conditions), the ability to deconflict is important. - // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$` - // +kubebuilder:validation:MaxLength=316 - Type string `json:"type" protobuf:"bytes,1,opt,name=type"` - // status of the condition, one of True, False, Unknown. - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Enum=True;False;Unknown - Status metav1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status"` - // observedGeneration represents the .metadata.generation that the condition was set based upon. - // For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - // with respect to the current state of the instance. - // +kubebuilder:validation:Required - // +kubebuilder:validation:Minimum=0 - ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,3,opt,name=observedGeneration"` - // lastTransitionTime is the last time the condition transitioned from one status to another. - // This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Type=string - // +kubebuilder:validation:Format=date-time - LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,4,opt,name=lastTransitionTime"` - // message is a human readable message indicating details about the transition. - // This may be an empty string. - // +required - // +kubebuilder:validation:Optional - // +kubebuilder:validation:MaxLength=32768 - Message string `json:"message,omitempty" protobuf:"bytes,6,opt,name=message"` -} - -type Conditions []Condition - -func (conditions *Conditions) Set(condition Condition) { - if conditions == nil { - *conditions = Conditions{} - } - for i, c := range *conditions { - if c.Type == condition.Type { - (*conditions)[i] = condition - return - } - } - *conditions = append(*conditions, condition) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/control_types.go b/components/operator/api/stack.formance.com/components/v1beta1/control_types.go deleted file mode 100644 index 7d3a9d7b45..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/control_types.go +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type AuthClientConfiguration struct { - ClientID string `json:"clientID"` - ClientSecret string `json:"clientSecret"` -} - -type ControlSpec struct { - Scalable `json:",inline"` - ImageHolder `json:",inline"` - // +optional - Ingress *IngressSpec `json:"ingress"` - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` - // +optional - Debug bool `json:"debug"` - ApiURLFront string `json:"apiURLFront"` - ApiURLBack string `json:"apiURLBack"` - - // +optional - AuthClientConfiguration *AuthClientConfiguration `json:"auth"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector - -// Control is the Schema for the controls API -type Control struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec ControlSpec `json:"spec,omitempty"` - Status ReplicationStatus `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector - -// ControlList contains a list of Control -type ControlList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Control `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Control{}, &ControlList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/groupversion_info.go b/components/operator/api/stack.formance.com/components/v1beta1/groupversion_info.go deleted file mode 100644 index 3180f5f54d..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/groupversion_info.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1beta1 contains API Schema definitions for the components v1beta1 API group -// +kubebuilder:object:generate=true -// +groupName=components.formance.com -package v1beta1 - -import ( - "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" -) - -var ( - // GroupVersion is group version used to register these objects - GroupVersion = schema.GroupVersion{Group: "components.formance.com", Version: "v1beta1"} - - // SchemeBuilder is used to add go types to the GroupVersionKind scheme - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} - - // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme -) diff --git a/components/operator/api/stack.formance.com/components/v1beta1/image.go b/components/operator/api/stack.formance.com/components/v1beta1/image.go deleted file mode 100644 index af040cc300..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/image.go +++ /dev/null @@ -1,18 +0,0 @@ -package v1beta1 - -import ( - corev1 "k8s.io/api/core/v1" -) - -type ImageHolder struct { - // +optional - Image string `json:"image,omitempty"` - - // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - // If specified, these secrets will be passed to individual puller implementations for them to use. - // More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - // +optional - // +patchMergeKey=name - // +patchStrategy=merge - ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,15,rep,name=imagePullSecrets"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/ingress.go b/components/operator/api/stack.formance.com/components/v1beta1/ingress.go deleted file mode 100644 index fd9bebea9e..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/ingress.go +++ /dev/null @@ -1,21 +0,0 @@ -// +kubebuilder:object:generate=true -package v1beta1 - -type IngressSpec struct { - // +optional - Annotations map[string]string `json:"annotations"` - Path string `json:"path"` - Host string `json:"host"` - // +optional - TLS *IngressTLS `json:"tls"` -} - -type IngressTLS struct { - // SecretName is the name of the secret used to terminate TLS traffic on - // port 443. Field is left optional to allow TLS routing based on SNI - // hostname alone. If the SNI host in a listener conflicts with the "Host" - // header field used by an IngressRule, the SNI host is used for termination - // and value of the Host header is used for routing. - // +optional - SecretName string `json:"secretName,omitempty" protobuf:"bytes,2,opt,name=secretName"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/ledger_types.go b/components/operator/api/stack.formance.com/components/v1beta1/ledger_types.go deleted file mode 100644 index f7e706fe01..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/ledger_types.go +++ /dev/null @@ -1,97 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - "time" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type LockingStrategyRedisConfig struct { - // +optional - Uri string `json:"uri,omitempty"` - // +optional - UriFrom *ConfigSource `json:"uriFrom,omitempty"` - // +optional - TLS bool `json:"tls"` - // +optional - InsecureTLS bool `json:"insecure,omitempty"` - // +optional - Duration time.Duration `json:"duration,omitempty"` - // +optional - Retry time.Duration `json:"retry,omitempty"` -} - -type LockingStrategy struct { - // +kubebuilder:Enum:={memory,redis} - // +kubebuilder:default:=memory - // +optional - Strategy string `json:"strategy,omitempty"` - // +optional - Redis *LockingStrategyRedisConfig `json:"redis"` -} - -type PostgresConfigCreateDatabase struct { - PostgresConfigWithDatabase `json:",inline"` - CreateDatabase bool `json:"createDatabase"` -} - -type LedgerSpec struct { - Scalable `json:",inline"` - ImageHolder `json:",inline"` - // +optional - Ingress *IngressSpec `json:"ingress"` - // +optional - Debug bool `json:"debug"` - // +optional - Postgres PostgresConfigCreateDatabase `json:"postgres"` - // +optional - Auth *AuthConfigSpec `json:"auth"` - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` - // +optional - Collector *CollectorConfig `json:"collector"` - - LockingStrategy LockingStrategy `json:"locking"` -} - -// Ledger is the Schema for the ledgers API -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector -type Ledger struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec LedgerSpec `json:"spec"` - // +optional - Status ReplicationStatus `json:"status"` -} - -//+kubebuilder:object:root=true - -// LedgerList contains a list of Ledger -type LedgerList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Ledger `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Ledger{}, &LedgerList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/monitoring.go b/components/operator/api/stack.formance.com/components/v1beta1/monitoring.go deleted file mode 100644 index cdcaaedd03..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/monitoring.go +++ /dev/null @@ -1,35 +0,0 @@ -// +kubebuilder:object:generate=true -package v1beta1 - -import ( - v1 "k8s.io/api/core/v1" -) - -type MonitoringSpec struct { - // +optional - Traces *TracesSpec `json:"traces,omitempty"` -} - -type TracesOtlpSpec struct { - // +optional - Endpoint string `json:"endpoint,omitempty"` - // +optional - EndpointFrom *v1.EnvVarSource `json:"endpointFrom,omitempty"` - // +optional - Port int32 `json:"port,omitempty"` - // +optional - PortFrom *v1.EnvVarSource `json:"portFrom,omitempty"` - // +optional - Insecure bool `json:"insecure,omitempty"` - // +kubebuilder:validation:Enum:={grpc,http} - // +kubebuilder:validation:default:=grpc - // +optional - Mode string `json:"mode,omitempty"` - // +optional - ResourceAttributes string `json:"resourceAttributes,omitempty"` -} - -type TracesSpec struct { - // +optional - Otlp *TracesOtlpSpec `json:"otlp,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/payments_types.go b/components/operator/api/stack.formance.com/components/v1beta1/payments_types.go deleted file mode 100644 index 9432305be8..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/payments_types.go +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type MongoDBConfig struct { -} - -type PaymentsSpec struct { - ImageHolder `json:",inline"` - // +optional - Ingress *IngressSpec `json:"ingress"` - // +optional - Debug bool `json:"debug"` - // +optional - Auth *AuthConfigSpec `json:"auth"` - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` - // +optional - Collector *CollectorConfig `json:"collector"` - - MongoDB MongoDBConfig `json:"mongoDB"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status - -// Payments is the Schema for the payments API -type Payments struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec PaymentsSpec `json:"spec,omitempty"` - Status Status `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// PaymentsList contains a list of Payments -type PaymentsList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Payments `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Payments{}, &PaymentsList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/postgres.go b/components/operator/api/stack.formance.com/components/v1beta1/postgres.go deleted file mode 100644 index 82b1af4f4f..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/postgres.go +++ /dev/null @@ -1,51 +0,0 @@ -// +kubebuilder:object:generate=true -package v1beta1 - -import ( - corev1 "k8s.io/api/core/v1" -) - -type ConfigSource struct { - // Selects a key of a ConfigMap. - // +optional - ConfigMapKeyRef *corev1.ConfigMapKeySelector `json:"configMapKeyRef,omitempty" protobuf:"bytes,3,opt,name=configMapKeyRef"` - // Selects a key of a secret in the pod's namespace - // +optional - SecretKeyRef *corev1.SecretKeySelector `json:"secretKeyRef,omitempty" protobuf:"bytes,4,opt,name=secretKeyRef"` -} - -func (c *ConfigSource) Env() *corev1.EnvVarSource { - return &corev1.EnvVarSource{ - ConfigMapKeyRef: c.ConfigMapKeyRef, - SecretKeyRef: c.SecretKeyRef, - } -} - -type PostgresConfig struct { - // +optional - Port int `json:"port"` - // +optional - PortFrom *ConfigSource `json:"portFrom"` - // +optional - Host string `json:"host"` - // +optional - HostFrom *ConfigSource `json:"hostFrom"` - // +optional - Username string `json:"username"` - // +optional - UsernameFrom *ConfigSource `json:"usernameFrom"` - // +optional - Password string `json:"password"` - // +optional - PasswordFrom *ConfigSource `json:"passwordFrom"` - // +optional - DisableSSLMode bool `json:"disableSSLMode"` -} - -type PostgresConfigWithDatabase struct { - PostgresConfig `json:",inline"` - // +optional - Database string `json:"database"` - // +optional - DatabaseFrom *ConfigSource `json:"databaseFrom"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/scale.go b/components/operator/api/stack.formance.com/components/v1beta1/scale.go deleted file mode 100644 index 9fa4f5444a..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/scale.go +++ /dev/null @@ -1,61 +0,0 @@ -package v1beta1 - -import ( - autoscallingv2 "k8s.io/api/autoscaling/v2" - "k8s.io/utils/pointer" - "sigs.k8s.io/controller-runtime/pkg/client" -) - -type Scalable struct { - // +optional - // +kubebuilder:default:=1 - Replicas *int32 `json:"replicas,omitempty"` - // minReplicas is the lower limit for the number of replicas to which the autoscaler - // can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - // alpha feature gate HPAScaleToZero is enabled and at least one Object or External - // metric is configured. Scaling is active as long as at least one metric value is - // available. - // +optional - MinReplicas *int32 `json:"minReplicas,omitempty" protobuf:"varint,2,opt,name=minReplicas"` - // upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - // If not specified, the default will be 10 - // +optional - // +kubebuilder:default:=10 - MaxReplicas int32 `json:"maxReplicas,omitempty" protobuf:"varint,3,opt,name=maxReplicas"` - // metrics contains the specifications for which to use to calculate the - // desired replica count (the maximum replica count across all metrics will - // be used). The desired replica count is calculated multiplying the - // ratio between the target value and the current value by the current - // number of pods. Ergo, metrics used must decrease as the pod count is - // increased, and vice-versa. See the individual metric source types for - // more information about how each type of metric must respond. - // +optional - Metrics []autoscallingv2.MetricSpec `json:"metrics,omitempty" protobuf:"bytes,4,rep,name=metrics"` -} - -func (s Scalable) GetReplicas() *int32 { - if s.Replicas != nil { - return s.Replicas - } - replicas := int32(1) - return &replicas -} - -func (s Scalable) GetHPASpec(object client.Object) autoscallingv2.HorizontalPodAutoscalerSpec { - gvk := object.GetObjectKind().GroupVersionKind() - return autoscallingv2.HorizontalPodAutoscalerSpec{ - ScaleTargetRef: autoscallingv2.CrossVersionObjectReference{ - Kind: gvk.Kind, - Name: object.GetName(), - APIVersion: gvk.GroupVersion().String(), - }, - MinReplicas: pointer.Int32(1), - MaxReplicas: s.MaxReplicas, - Metrics: s.Metrics, - } -} - -func (s Scalable) WithReplicas(replicas *int32) Scalable { - s.Replicas = replicas - return s -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/search_types.go b/components/operator/api/stack.formance.com/components/v1beta1/search_types.go deleted file mode 100644 index df121ad3a0..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/search_types.go +++ /dev/null @@ -1,102 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type ElasticSearchTLSConfig struct { - // +optional - Enabled bool `json:"enabled,omitempty"` - // +optional - SkipCertVerify bool `json:"skipCertVerify,omitempty"` -} - -type ElasticSearchBasicAuthConfig struct { - Username string `json:"username"` - Password string `json:"password"` -} - -type ElasticSearchConfig struct { - // +optional - // +kubebuilder:validation:Enum:={http,https} - // +kubebuilder:validation:default:=https - Scheme string `json:"scheme,omitempty"` - // +optional - Host string `json:"host,omitempty"` - // +optional - HostFrom *ConfigSource `json:"hostFrom,omitempty"` - // +optional - Port uint16 `json:"port,omitempty"` - // +optional - PortFrom *ConfigSource `json:"portFrom,omitempty"` - // +optional - TLS ElasticSearchTLSConfig `json:"tls"` - // +optional - BasicAuth *ElasticSearchBasicAuthConfig `json:"basicAuth"` - // +optional - PathPrefix string `json:"pathPrefix"` -} - -type Batching struct { - Count int `json:"count"` - Period string `json:"period"` -} - -type SearchSpec struct { - Scalable `json:",inline"` - ImageHolder `json:",inline"` - // +optional - Ingress *IngressSpec `json:"ingress"` - // +optional - Debug bool `json:"debug"` - // +optional - Auth *AuthConfigSpec `json:"auth"` - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` - ElasticSearch ElasticSearchConfig `json:"elasticsearch"` - KafkaConfig KafkaConfig `json:"kafka"` - Index string `json:"index"` - Batching Batching `json:"batching"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector - -// Search is the Schema for the searches API -type Search struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec SearchSpec `json:"spec,omitempty"` - Status ReplicationStatus `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// SearchList contains a list of Search -type SearchList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Search `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Search{}, &SearchList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/searchingester_types.go b/components/operator/api/stack.formance.com/components/v1beta1/searchingester_types.go deleted file mode 100644 index 90ef63a733..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/searchingester_types.go +++ /dev/null @@ -1,58 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - "encoding/json" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type SearchIngesterSpec struct { - Reference string `json:"reference"` - //+kubebuilder:pruning:PreserveUnknownFields - //+kubebuilder:validation:Type=object - //+kubebuilder:validation:Schemaless - Pipeline json.RawMessage `json:"pipeline"` // Should be a map[string]any but controller-gen does not support it - // +optional - Debug bool `json:"debug,omitempty"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status - -// SearchIngester is the Schema for the searchingesters API -type SearchIngester struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec SearchIngesterSpec `json:"spec,omitempty"` - Status Status `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// SearchIngesterList contains a list of SearchIngester -type SearchIngesterList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []SearchIngester `json:"items"` -} - -func init() { - SchemeBuilder.Register(&SearchIngester{}, &SearchIngesterList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/shared_types.go b/components/operator/api/stack.formance.com/components/v1beta1/shared_types.go deleted file mode 100644 index bea8297f6e..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/shared_types.go +++ /dev/null @@ -1,6 +0,0 @@ -package v1beta1 - -type CollectorConfig struct { - KafkaConfig `json:",inline"` - Topic string `json:"topic"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/status.go b/components/operator/api/stack.formance.com/components/v1beta1/status.go deleted file mode 100644 index 34badc89d6..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/status.go +++ /dev/null @@ -1,15 +0,0 @@ -package v1beta1 - -type Status struct { - // +patchMergeKey=type - // +patchStrategy=merge - Conditions Conditions `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` -} - -type ReplicationStatus struct { - Status `json:",inline"` - // +optional - Replicas int32 `json:"replicas"` - // +optional - Selector string `json:"selector"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/webhooks_types.go b/components/operator/api/stack.formance.com/components/v1beta1/webhooks_types.go deleted file mode 100644 index dda3f9571b..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/webhooks_types.go +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright 2022. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type WebhooksSpec struct { - ImageHolder `json:",inline"` - // +optional - Ingress *IngressSpec `json:"ingress"` - // +optional - Debug bool `json:"debug"` - // +optional - Auth *AuthConfigSpec `json:"auth"` - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` - // +optional - Collector *CollectorConfig `json:"collector"` - // +optional - MongoDB MongoDBConfig `json:"mongoDB"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status - -// Webhooks is the Schema for the Webhooks API -type Webhooks struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec WebhooksSpec `json:"spec,omitempty"` - Status Status `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// WebhooksList contains a list of Webhooks -type WebhooksList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Webhooks `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Webhooks{}, &WebhooksList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta1/zz_generated.deepcopy.go b/components/operator/api/stack.formance.com/components/v1beta1/zz_generated.deepcopy.go deleted file mode 100644 index aded62cc6e..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta1/zz_generated.deepcopy.go +++ /dev/null @@ -1,1338 +0,0 @@ -//go:build !ignore_autogenerated - -/* -Copyright 2023. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by controller-gen. DO NOT EDIT. - -package v1beta1 - -import ( - "encoding/json" - auth_componentsv1beta1 "github.com/formancehq/operator/api/stack.formance.com/auth.components/v1beta1" - "k8s.io/api/autoscaling/v2" - "k8s.io/api/core/v1" - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Auth) DeepCopyInto(out *Auth) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Auth. -func (in *Auth) DeepCopy() *Auth { - if in == nil { - return nil - } - out := new(Auth) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Auth) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuthClientConfiguration) DeepCopyInto(out *AuthClientConfiguration) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthClientConfiguration. -func (in *AuthClientConfiguration) DeepCopy() *AuthClientConfiguration { - if in == nil { - return nil - } - out := new(AuthClientConfiguration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuthConfigSpec) DeepCopyInto(out *AuthConfigSpec) { - *out = *in - if in.OAuth2 != nil { - in, out := &in.OAuth2, &out.OAuth2 - *out = new(OAuth2ConfigSpec) - (*in).DeepCopyInto(*out) - } - if in.HTTPBasic != nil { - in, out := &in.HTTPBasic, &out.HTTPBasic - *out = new(HTTPBasicConfigSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthConfigSpec. -func (in *AuthConfigSpec) DeepCopy() *AuthConfigSpec { - if in == nil { - return nil - } - out := new(AuthConfigSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuthList) DeepCopyInto(out *AuthList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Auth, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthList. -func (in *AuthList) DeepCopy() *AuthList { - if in == nil { - return nil - } - out := new(AuthList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *AuthList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuthSpec) DeepCopyInto(out *AuthSpec) { - *out = *in - in.Scalable.DeepCopyInto(&out.Scalable) - in.ImageHolder.DeepCopyInto(&out.ImageHolder) - in.Postgres.DeepCopyInto(&out.Postgres) - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressSpec) - (*in).DeepCopyInto(*out) - } - in.DelegatedOIDCServer.DeepCopyInto(&out.DelegatedOIDCServer) - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } - if in.StaticClients != nil { - in, out := &in.StaticClients, &out.StaticClients - *out = make([]auth_componentsv1beta1.StaticClient, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthSpec. -func (in *AuthSpec) DeepCopy() *AuthSpec { - if in == nil { - return nil - } - out := new(AuthSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Batching) DeepCopyInto(out *Batching) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Batching. -func (in *Batching) DeepCopy() *Batching { - if in == nil { - return nil - } - out := new(Batching) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CollectorConfig) DeepCopyInto(out *CollectorConfig) { - *out = *in - in.KafkaConfig.DeepCopyInto(&out.KafkaConfig) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CollectorConfig. -func (in *CollectorConfig) DeepCopy() *CollectorConfig { - if in == nil { - return nil - } - out := new(CollectorConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Condition) DeepCopyInto(out *Condition) { - *out = *in - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition. -func (in *Condition) DeepCopy() *Condition { - if in == nil { - return nil - } - out := new(Condition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in Conditions) DeepCopyInto(out *Conditions) { - { - in := &in - *out = make(Conditions, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Conditions. -func (in Conditions) DeepCopy() Conditions { - if in == nil { - return nil - } - out := new(Conditions) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigSource) DeepCopyInto(out *ConfigSource) { - *out = *in - if in.ConfigMapKeyRef != nil { - in, out := &in.ConfigMapKeyRef, &out.ConfigMapKeyRef - *out = new(v1.ConfigMapKeySelector) - (*in).DeepCopyInto(*out) - } - if in.SecretKeyRef != nil { - in, out := &in.SecretKeyRef, &out.SecretKeyRef - *out = new(v1.SecretKeySelector) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigSource. -func (in *ConfigSource) DeepCopy() *ConfigSource { - if in == nil { - return nil - } - out := new(ConfigSource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Control) DeepCopyInto(out *Control) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Control. -func (in *Control) DeepCopy() *Control { - if in == nil { - return nil - } - out := new(Control) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Control) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ControlList) DeepCopyInto(out *ControlList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Control, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlList. -func (in *ControlList) DeepCopy() *ControlList { - if in == nil { - return nil - } - out := new(ControlList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ControlList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ControlSpec) DeepCopyInto(out *ControlSpec) { - *out = *in - in.Scalable.DeepCopyInto(&out.Scalable) - in.ImageHolder.DeepCopyInto(&out.ImageHolder) - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressSpec) - (*in).DeepCopyInto(*out) - } - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } - if in.AuthClientConfiguration != nil { - in, out := &in.AuthClientConfiguration, &out.AuthClientConfiguration - *out = new(AuthClientConfiguration) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlSpec. -func (in *ControlSpec) DeepCopy() *ControlSpec { - if in == nil { - return nil - } - out := new(ControlSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DelegatedOIDCServerConfiguration) DeepCopyInto(out *DelegatedOIDCServerConfiguration) { - *out = *in - if in.IssuerFrom != nil { - in, out := &in.IssuerFrom, &out.IssuerFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.ClientIDFrom != nil { - in, out := &in.ClientIDFrom, &out.ClientIDFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.ClientSecretFrom != nil { - in, out := &in.ClientSecretFrom, &out.ClientSecretFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DelegatedOIDCServerConfiguration. -func (in *DelegatedOIDCServerConfiguration) DeepCopy() *DelegatedOIDCServerConfiguration { - if in == nil { - return nil - } - out := new(DelegatedOIDCServerConfiguration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ElasticSearchBasicAuthConfig) DeepCopyInto(out *ElasticSearchBasicAuthConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticSearchBasicAuthConfig. -func (in *ElasticSearchBasicAuthConfig) DeepCopy() *ElasticSearchBasicAuthConfig { - if in == nil { - return nil - } - out := new(ElasticSearchBasicAuthConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ElasticSearchConfig) DeepCopyInto(out *ElasticSearchConfig) { - *out = *in - if in.HostFrom != nil { - in, out := &in.HostFrom, &out.HostFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.PortFrom != nil { - in, out := &in.PortFrom, &out.PortFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - out.TLS = in.TLS - if in.BasicAuth != nil { - in, out := &in.BasicAuth, &out.BasicAuth - *out = new(ElasticSearchBasicAuthConfig) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticSearchConfig. -func (in *ElasticSearchConfig) DeepCopy() *ElasticSearchConfig { - if in == nil { - return nil - } - out := new(ElasticSearchConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ElasticSearchTLSConfig) DeepCopyInto(out *ElasticSearchTLSConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticSearchTLSConfig. -func (in *ElasticSearchTLSConfig) DeepCopy() *ElasticSearchTLSConfig { - if in == nil { - return nil - } - out := new(ElasticSearchTLSConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HTTPBasicConfigSpec) DeepCopyInto(out *HTTPBasicConfigSpec) { - *out = *in - if in.Credentials != nil { - in, out := &in.Credentials, &out.Credentials - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPBasicConfigSpec. -func (in *HTTPBasicConfigSpec) DeepCopy() *HTTPBasicConfigSpec { - if in == nil { - return nil - } - out := new(HTTPBasicConfigSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageHolder) DeepCopyInto(out *ImageHolder) { - *out = *in - if in.ImagePullSecrets != nil { - in, out := &in.ImagePullSecrets, &out.ImagePullSecrets - *out = make([]v1.LocalObjectReference, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageHolder. -func (in *ImageHolder) DeepCopy() *ImageHolder { - if in == nil { - return nil - } - out := new(ImageHolder) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IngressSpec) DeepCopyInto(out *IngressSpec) { - *out = *in - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.TLS != nil { - in, out := &in.TLS, &out.TLS - *out = new(IngressTLS) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec. -func (in *IngressSpec) DeepCopy() *IngressSpec { - if in == nil { - return nil - } - out := new(IngressSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IngressTLS) DeepCopyInto(out *IngressTLS) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressTLS. -func (in *IngressTLS) DeepCopy() *IngressTLS { - if in == nil { - return nil - } - out := new(IngressTLS) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KafkaConfig) DeepCopyInto(out *KafkaConfig) { - *out = *in - if in.Brokers != nil { - in, out := &in.Brokers, &out.Brokers - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.BrokersFrom != nil { - in, out := &in.BrokersFrom, &out.BrokersFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.SASL != nil { - in, out := &in.SASL, &out.SASL - *out = new(KafkaSASLConfig) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KafkaConfig. -func (in *KafkaConfig) DeepCopy() *KafkaConfig { - if in == nil { - return nil - } - out := new(KafkaConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KafkaSASLConfig) DeepCopyInto(out *KafkaSASLConfig) { - *out = *in - if in.UsernameFrom != nil { - in, out := &in.UsernameFrom, &out.UsernameFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.PasswordFrom != nil { - in, out := &in.PasswordFrom, &out.PasswordFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KafkaSASLConfig. -func (in *KafkaSASLConfig) DeepCopy() *KafkaSASLConfig { - if in == nil { - return nil - } - out := new(KafkaSASLConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Ledger) DeepCopyInto(out *Ledger) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ledger. -func (in *Ledger) DeepCopy() *Ledger { - if in == nil { - return nil - } - out := new(Ledger) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Ledger) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LedgerList) DeepCopyInto(out *LedgerList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Ledger, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LedgerList. -func (in *LedgerList) DeepCopy() *LedgerList { - if in == nil { - return nil - } - out := new(LedgerList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *LedgerList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LedgerSpec) DeepCopyInto(out *LedgerSpec) { - *out = *in - in.Scalable.DeepCopyInto(&out.Scalable) - in.ImageHolder.DeepCopyInto(&out.ImageHolder) - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressSpec) - (*in).DeepCopyInto(*out) - } - in.Postgres.DeepCopyInto(&out.Postgres) - if in.Auth != nil { - in, out := &in.Auth, &out.Auth - *out = new(AuthConfigSpec) - (*in).DeepCopyInto(*out) - } - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } - if in.Collector != nil { - in, out := &in.Collector, &out.Collector - *out = new(CollectorConfig) - (*in).DeepCopyInto(*out) - } - in.LockingStrategy.DeepCopyInto(&out.LockingStrategy) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LedgerSpec. -func (in *LedgerSpec) DeepCopy() *LedgerSpec { - if in == nil { - return nil - } - out := new(LedgerSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LockingStrategy) DeepCopyInto(out *LockingStrategy) { - *out = *in - if in.Redis != nil { - in, out := &in.Redis, &out.Redis - *out = new(LockingStrategyRedisConfig) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LockingStrategy. -func (in *LockingStrategy) DeepCopy() *LockingStrategy { - if in == nil { - return nil - } - out := new(LockingStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LockingStrategyRedisConfig) DeepCopyInto(out *LockingStrategyRedisConfig) { - *out = *in - if in.UriFrom != nil { - in, out := &in.UriFrom, &out.UriFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LockingStrategyRedisConfig. -func (in *LockingStrategyRedisConfig) DeepCopy() *LockingStrategyRedisConfig { - if in == nil { - return nil - } - out := new(LockingStrategyRedisConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MongoDBConfig) DeepCopyInto(out *MongoDBConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MongoDBConfig. -func (in *MongoDBConfig) DeepCopy() *MongoDBConfig { - if in == nil { - return nil - } - out := new(MongoDBConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitoringSpec) DeepCopyInto(out *MonitoringSpec) { - *out = *in - if in.Traces != nil { - in, out := &in.Traces, &out.Traces - *out = new(TracesSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitoringSpec. -func (in *MonitoringSpec) DeepCopy() *MonitoringSpec { - if in == nil { - return nil - } - out := new(MonitoringSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NatsConfig) DeepCopyInto(out *NatsConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NatsConfig. -func (in *NatsConfig) DeepCopy() *NatsConfig { - if in == nil { - return nil - } - out := new(NatsConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OAuth2ConfigSpec) DeepCopyInto(out *OAuth2ConfigSpec) { - *out = *in - if in.Audiences != nil { - in, out := &in.Audiences, &out.Audiences - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuth2ConfigSpec. -func (in *OAuth2ConfigSpec) DeepCopy() *OAuth2ConfigSpec { - if in == nil { - return nil - } - out := new(OAuth2ConfigSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Payments) DeepCopyInto(out *Payments) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Payments. -func (in *Payments) DeepCopy() *Payments { - if in == nil { - return nil - } - out := new(Payments) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Payments) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PaymentsList) DeepCopyInto(out *PaymentsList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Payments, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PaymentsList. -func (in *PaymentsList) DeepCopy() *PaymentsList { - if in == nil { - return nil - } - out := new(PaymentsList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *PaymentsList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PaymentsSpec) DeepCopyInto(out *PaymentsSpec) { - *out = *in - in.ImageHolder.DeepCopyInto(&out.ImageHolder) - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressSpec) - (*in).DeepCopyInto(*out) - } - if in.Auth != nil { - in, out := &in.Auth, &out.Auth - *out = new(AuthConfigSpec) - (*in).DeepCopyInto(*out) - } - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } - if in.Collector != nil { - in, out := &in.Collector, &out.Collector - *out = new(CollectorConfig) - (*in).DeepCopyInto(*out) - } - out.MongoDB = in.MongoDB -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PaymentsSpec. -func (in *PaymentsSpec) DeepCopy() *PaymentsSpec { - if in == nil { - return nil - } - out := new(PaymentsSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PostgresConfig) DeepCopyInto(out *PostgresConfig) { - *out = *in - if in.PortFrom != nil { - in, out := &in.PortFrom, &out.PortFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.HostFrom != nil { - in, out := &in.HostFrom, &out.HostFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.UsernameFrom != nil { - in, out := &in.UsernameFrom, &out.UsernameFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.PasswordFrom != nil { - in, out := &in.PasswordFrom, &out.PasswordFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresConfig. -func (in *PostgresConfig) DeepCopy() *PostgresConfig { - if in == nil { - return nil - } - out := new(PostgresConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PostgresConfigCreateDatabase) DeepCopyInto(out *PostgresConfigCreateDatabase) { - *out = *in - in.PostgresConfigWithDatabase.DeepCopyInto(&out.PostgresConfigWithDatabase) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresConfigCreateDatabase. -func (in *PostgresConfigCreateDatabase) DeepCopy() *PostgresConfigCreateDatabase { - if in == nil { - return nil - } - out := new(PostgresConfigCreateDatabase) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PostgresConfigWithDatabase) DeepCopyInto(out *PostgresConfigWithDatabase) { - *out = *in - in.PostgresConfig.DeepCopyInto(&out.PostgresConfig) - if in.DatabaseFrom != nil { - in, out := &in.DatabaseFrom, &out.DatabaseFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresConfigWithDatabase. -func (in *PostgresConfigWithDatabase) DeepCopy() *PostgresConfigWithDatabase { - if in == nil { - return nil - } - out := new(PostgresConfigWithDatabase) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ReplicationStatus) DeepCopyInto(out *ReplicationStatus) { - *out = *in - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationStatus. -func (in *ReplicationStatus) DeepCopy() *ReplicationStatus { - if in == nil { - return nil - } - out := new(ReplicationStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Scalable) DeepCopyInto(out *Scalable) { - *out = *in - if in.Replicas != nil { - in, out := &in.Replicas, &out.Replicas - *out = new(int32) - **out = **in - } - if in.MinReplicas != nil { - in, out := &in.MinReplicas, &out.MinReplicas - *out = new(int32) - **out = **in - } - if in.Metrics != nil { - in, out := &in.Metrics, &out.Metrics - *out = make([]v2.MetricSpec, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scalable. -func (in *Scalable) DeepCopy() *Scalable { - if in == nil { - return nil - } - out := new(Scalable) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Search) DeepCopyInto(out *Search) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Search. -func (in *Search) DeepCopy() *Search { - if in == nil { - return nil - } - out := new(Search) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Search) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SearchIngester) DeepCopyInto(out *SearchIngester) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchIngester. -func (in *SearchIngester) DeepCopy() *SearchIngester { - if in == nil { - return nil - } - out := new(SearchIngester) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SearchIngester) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SearchIngesterList) DeepCopyInto(out *SearchIngesterList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]SearchIngester, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchIngesterList. -func (in *SearchIngesterList) DeepCopy() *SearchIngesterList { - if in == nil { - return nil - } - out := new(SearchIngesterList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SearchIngesterList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SearchIngesterSpec) DeepCopyInto(out *SearchIngesterSpec) { - *out = *in - if in.Pipeline != nil { - in, out := &in.Pipeline, &out.Pipeline - *out = make(json.RawMessage, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchIngesterSpec. -func (in *SearchIngesterSpec) DeepCopy() *SearchIngesterSpec { - if in == nil { - return nil - } - out := new(SearchIngesterSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SearchList) DeepCopyInto(out *SearchList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Search, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchList. -func (in *SearchList) DeepCopy() *SearchList { - if in == nil { - return nil - } - out := new(SearchList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SearchList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SearchSpec) DeepCopyInto(out *SearchSpec) { - *out = *in - in.Scalable.DeepCopyInto(&out.Scalable) - in.ImageHolder.DeepCopyInto(&out.ImageHolder) - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressSpec) - (*in).DeepCopyInto(*out) - } - if in.Auth != nil { - in, out := &in.Auth, &out.Auth - *out = new(AuthConfigSpec) - (*in).DeepCopyInto(*out) - } - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } - in.ElasticSearch.DeepCopyInto(&out.ElasticSearch) - in.KafkaConfig.DeepCopyInto(&out.KafkaConfig) - out.Batching = in.Batching -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchSpec. -func (in *SearchSpec) DeepCopy() *SearchSpec { - if in == nil { - return nil - } - out := new(SearchSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Status) DeepCopyInto(out *Status) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Status. -func (in *Status) DeepCopy() *Status { - if in == nil { - return nil - } - out := new(Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TracesOtlpSpec) DeepCopyInto(out *TracesOtlpSpec) { - *out = *in - if in.EndpointFrom != nil { - in, out := &in.EndpointFrom, &out.EndpointFrom - *out = new(v1.EnvVarSource) - (*in).DeepCopyInto(*out) - } - if in.PortFrom != nil { - in, out := &in.PortFrom, &out.PortFrom - *out = new(v1.EnvVarSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracesOtlpSpec. -func (in *TracesOtlpSpec) DeepCopy() *TracesOtlpSpec { - if in == nil { - return nil - } - out := new(TracesOtlpSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TracesSpec) DeepCopyInto(out *TracesSpec) { - *out = *in - if in.Otlp != nil { - in, out := &in.Otlp, &out.Otlp - *out = new(TracesOtlpSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracesSpec. -func (in *TracesSpec) DeepCopy() *TracesSpec { - if in == nil { - return nil - } - out := new(TracesSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Webhooks) DeepCopyInto(out *Webhooks) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Webhooks. -func (in *Webhooks) DeepCopy() *Webhooks { - if in == nil { - return nil - } - out := new(Webhooks) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Webhooks) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WebhooksList) DeepCopyInto(out *WebhooksList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Webhooks, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhooksList. -func (in *WebhooksList) DeepCopy() *WebhooksList { - if in == nil { - return nil - } - out := new(WebhooksList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *WebhooksList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WebhooksSpec) DeepCopyInto(out *WebhooksSpec) { - *out = *in - in.ImageHolder.DeepCopyInto(&out.ImageHolder) - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressSpec) - (*in).DeepCopyInto(*out) - } - if in.Auth != nil { - in, out := &in.Auth, &out.Auth - *out = new(AuthConfigSpec) - (*in).DeepCopyInto(*out) - } - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } - if in.Collector != nil { - in, out := &in.Collector, &out.Collector - *out = new(CollectorConfig) - (*in).DeepCopyInto(*out) - } - out.MongoDB = in.MongoDB -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhooksSpec. -func (in *WebhooksSpec) DeepCopy() *WebhooksSpec { - if in == nil { - return nil - } - out := new(WebhooksSpec) - in.DeepCopyInto(out) - return out -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/auth.go b/components/operator/api/stack.formance.com/components/v1beta2/auth.go deleted file mode 100644 index 99823cee7c..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/auth.go +++ /dev/null @@ -1,32 +0,0 @@ -package v1beta2 - -type OAuth2ConfigSpec struct { - - // +required - IntrospectUrl string `json:"introspectUrl"` - - // +optional - Audiences []string `json:"audiences"` - - // +optional - AudienceWildcard bool `json:"audienceWildcard"` - - //+optional - ProtectedByScopes bool `json:"ProtectedByScopes"` -} - -type HTTPBasicConfigSpec struct { - // +optional - Enabled bool `json:"enabled"` - - // +optional - Credentials map[string]string `json:"credentials"` -} - -type AuthConfigSpec struct { - // +optional - OAuth2 *OAuth2ConfigSpec `json:"oauth2,omitempty"` - - // +optional - HTTPBasic *HTTPBasicConfigSpec `json:"basic,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/auth_types.go b/components/operator/api/stack.formance.com/components/v1beta2/auth_types.go deleted file mode 100644 index 49d22c378c..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/auth_types.go +++ /dev/null @@ -1,88 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - authv1beta2 "github.com/formancehq/operator/api/stack.formance.com/auth.components/v1beta2" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type DelegatedOIDCServerConfiguration struct { - // +optional - Issuer string `json:"issuer,omitempty"` - // +optional - IssuerFrom *ConfigSource `json:"issuerFrom,omitempty"` - // +optional - ClientID string `json:"clientID,omitempty"` - // +optional - ClientIDFrom *ConfigSource `json:"clientIDFrom,omitempty"` - // +optional - ClientSecret string `json:"clientSecret,omitempty"` - // +optional - ClientSecretFrom *ConfigSource `json:"clientSecretFrom,omitempty"` -} - -// AuthSpec defines the desired state of Auth -type AuthSpec struct { - CommonServiceProperties `json:",inline"` - Scalable `json:",inline"` - Postgres PostgresConfigCreateDatabase `json:"postgres"` - BaseURL string `json:"baseURL"` - - // SigningKey is a private key - // The signing key is used by the server to sign JWT tokens - // The value of this config will be copied to a secret and injected inside - // the env vars of the server using secret mapping. - // If not specified, a key will be automatically generated. - // +optional - SigningKey string `json:"signingKey"` - - DelegatedOIDCServer DelegatedOIDCServerConfiguration `json:"delegatedOIDCServer"` - - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` - - // +optional - StaticClients []authv1beta2.StaticClient `json:"staticClients"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector -//+kubebuilder:storageversion - -// Auth is the Schema for the auths API -type Auth struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec AuthSpec `json:"spec,omitempty"` - Status Status `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// AuthList contains a list of Auth -type AuthList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Auth `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Auth{}, &AuthList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/collector.go b/components/operator/api/stack.formance.com/components/v1beta2/collector.go deleted file mode 100644 index 11661dd69f..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/collector.go +++ /dev/null @@ -1,29 +0,0 @@ -package v1beta2 - -type KafkaSASLConfig struct { - // +optional - Username string `json:"username,omitempty"` - // +optional - UsernameFrom *ConfigSource `json:"usernameFrom,omitempty"` - // +optional - Password string `json:"password,omitempty"` - // +optional - PasswordFrom *ConfigSource `json:"passwordFrom,omitempty"` - Mechanism string `json:"mechanism"` - ScramSHASize string `json:"scramSHASize"` -} - -type KafkaConfig struct { - // +optional - Brokers []string `json:"brokers"` - // +optional - BrokersFrom *ConfigSource `json:"brokersFrom"` - // +optional - TLS bool `json:"tls"` - // +optional - SASL *KafkaSASLConfig `json:"sasl,omitempty"` -} - -type NatsConfig struct { - URL string `json:"url"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/common.go b/components/operator/api/stack.formance.com/components/v1beta2/common.go deleted file mode 100644 index 0358b1c058..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/common.go +++ /dev/null @@ -1,15 +0,0 @@ -package v1beta2 - -type DevProperties struct { - // +optional - Debug bool `json:"debug"` - // +optional - Dev bool `json:"dev"` -} - -type CommonServiceProperties struct { - DevProperties `json:",inline"` - // +optional - //+kubebuilder:default:="latest" - Version string `json:"version,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/condition.go b/components/operator/api/stack.formance.com/components/v1beta2/condition.go deleted file mode 100644 index c5e9ad4d41..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/condition.go +++ /dev/null @@ -1,57 +0,0 @@ -package v1beta2 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type Condition struct { - // type of condition in CamelCase or in foo.example.com/CamelCase. - // --- - // Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - // useful (see .node.status.conditions), the ability to deconflict is important. - // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$` - // +kubebuilder:validation:MaxLength=316 - Type string `json:"type" protobuf:"bytes,1,opt,name=type"` - // status of the condition, one of True, False, Unknown. - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Enum=True;False;Unknown - Status metav1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status"` - // observedGeneration represents the .metadata.generation that the condition was set based upon. - // For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - // with respect to the current state of the instance. - // +kubebuilder:validation:Required - // +kubebuilder:validation:Minimum=0 - ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,3,opt,name=observedGeneration"` - // lastTransitionTime is the last time the condition transitioned from one status to another. - // This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Type=string - // +kubebuilder:validation:Format=date-time - LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,4,opt,name=lastTransitionTime"` - // message is a human readable message indicating details about the transition. - // This may be an empty string. - // +required - // +kubebuilder:validation:Optional - // +kubebuilder:validation:MaxLength=32768 - Message string `json:"message,omitempty" protobuf:"bytes,6,opt,name=message"` -} - -type Conditions []Condition - -func (conditions *Conditions) Set(condition Condition) { - if conditions == nil { - *conditions = Conditions{} - } - for i, c := range *conditions { - if c.Type == condition.Type { - (*conditions)[i] = condition - return - } - } - *conditions = append(*conditions, condition) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/control_types.go b/components/operator/api/stack.formance.com/components/v1beta2/control_types.go deleted file mode 100644 index c27681f1e9..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/control_types.go +++ /dev/null @@ -1,66 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type AuthClientConfiguration struct { - ClientID string `json:"clientID"` - ClientSecret string `json:"clientSecret"` -} - -// ControlSpec defines the desired state of Control -type ControlSpec struct { - CommonServiceProperties `json:",inline"` - Scalable `json:",inline"` - - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` - ApiURLFront string `json:"apiURLFront"` - ApiURLBack string `json:"apiURLBack"` - AuthClientConfiguration OAuth2ClientConfiguration `json:"auth"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector -//+kubebuilder:storageversion - -// Control is the Schema for the controls API -type Control struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec ControlSpec `json:"spec,omitempty"` - Status Status `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector - -// ControlList contains a list of Control -type ControlList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Control `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Control{}, &ControlList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/counterparties_types.go b/components/operator/api/stack.formance.com/components/v1beta2/counterparties_types.go deleted file mode 100644 index 65e8fa0799..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/counterparties_types.go +++ /dev/null @@ -1,55 +0,0 @@ -/* -Copyright 2022. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// CounterpartiesSpec defines the desired state of Counterparties -type CounterpartiesSpec struct { - CommonServiceProperties `json:",inline"` - - // +optional - Enabled bool `json:"enabled,omitempty"` - // +optional - Postgres PostgresConfigCreateDatabase `json:"postgres"` - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status - -// Counterparties is the Schema for the Counterparties API -type Counterparties struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec CounterpartiesSpec `json:"spec,omitempty"` - Status Status `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// CounterpartiesList contains a list of Counterparties -type CounterpartiesList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Counterparties `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Counterparties{}, &CounterpartiesList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/env.go b/components/operator/api/stack.formance.com/components/v1beta2/env.go deleted file mode 100644 index 16aedc3d02..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/env.go +++ /dev/null @@ -1,12 +0,0 @@ -package v1beta2 - -import ( - corev1 "k8s.io/api/core/v1" -) - -func Env(key, value string) corev1.EnvVar { - return corev1.EnvVar{ - Name: key, - Value: value, - } -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/groupversion_info.go b/components/operator/api/stack.formance.com/components/v1beta2/groupversion_info.go deleted file mode 100644 index 08affdc802..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/groupversion_info.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1beta2 contains API Schema definitions for the components v1beta2 API group -// +kubebuilder:object:generate=true -// +groupName=components.formance.com -package v1beta2 - -import ( - "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" -) - -var ( - // GroupVersion is group version used to register these objects - GroupVersion = schema.GroupVersion{Group: "components.formance.com", Version: "v1beta2"} - - // SchemeBuilder is used to add go types to the GroupVersionKind scheme - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} - - // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme -) diff --git a/components/operator/api/stack.formance.com/components/v1beta2/image.go b/components/operator/api/stack.formance.com/components/v1beta2/image.go deleted file mode 100644 index ce3f9c957e..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/image.go +++ /dev/null @@ -1,27 +0,0 @@ -package v1beta2 - -import ( - "fmt" - - corev1 "k8s.io/api/core/v1" -) - -type ImageHolder struct { - // +optional - Image string `json:"image,omitempty"` - - // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - // If specified, these secrets will be passed to individual puller implementations for them to use. - // More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - // +optional - // +patchMergeKey=name - // +patchStrategy=merge - ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,15,rep,name=imagePullSecrets"` -} - -func (h *ImageHolder) GetImage(component string) string { - if h.Image == "" { - return fmt.Sprintf("ghcr.io/formancehq/%s:latest", component) - } - return h.Image -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/ingress.go b/components/operator/api/stack.formance.com/components/v1beta2/ingress.go deleted file mode 100644 index b86aefdcbd..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/ingress.go +++ /dev/null @@ -1,34 +0,0 @@ -// +kubebuilder:object:generate=true -package v1beta2 - -import ( - networkingv1 "k8s.io/api/networking/v1" -) - -type IngressSpec struct { - // +optional - Annotations map[string]string `json:"annotations"` - Path string `json:"path"` - Host string `json:"host"` - // +optional - TLS *IngressTLS `json:"tls"` -} - -type IngressTLS struct { - // SecretName is the name of the secret used to terminate TLS traffic on - // port 443. Field is left optional to allow TLS routing based on SNI - // hostname alone. If the SNI host in a listener conflicts with the "Host" - // header field used by an IngressRule, the SNI host is used for termination - // and value of the Host header is used for routing. - // +optional - SecretName string `json:"secretName,omitempty" protobuf:"bytes,2,opt,name=secretName"` -} - -func (t *IngressTLS) AsK8SIngressTLSSlice() []networkingv1.IngressTLS { - if t == nil { - return nil - } - return []networkingv1.IngressTLS{{ - //SecretName: t.SecretName, - }} -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/ledger_types.go b/components/operator/api/stack.formance.com/components/v1beta2/ledger_types.go deleted file mode 100644 index 57513a79b1..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/ledger_types.go +++ /dev/null @@ -1,90 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - "time" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type LockingStrategyRedisConfig struct { - // +optional - Uri string `json:"uri,omitempty"` - // +optional - UriFrom *ConfigSource `json:"uriFrom,omitempty"` - // +optional - TLS bool `json:"tls"` - // +optional - InsecureTLS bool `json:"insecure,omitempty"` - // +optional - Duration time.Duration `json:"duration,omitempty"` - // +optional - Retry time.Duration `json:"retry,omitempty"` -} - -type LockingStrategy struct { - // +kubebuilder:Enum:={memory,redis} - // +kubebuilder:default:=memory - // +optional - Strategy string `json:"strategy,omitempty"` - // +optional - Redis *LockingStrategyRedisConfig `json:"redis"` -} - -// LedgerSpec defines the desired state of Ledger -type LedgerSpec struct { - CommonServiceProperties `json:",inline"` - Scalable `json:",inline"` - - // +optional - Postgres PostgresConfigCreateDatabase `json:"postgres"` - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` - // +optional - Collector *CollectorConfig `json:"collector"` - - LockingStrategy LockingStrategy `json:"locking"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector -//+kubebuilder:storageversion - -// Ledger is the Schema for the ledgers API -type Ledger struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec LedgerSpec `json:"spec"` - // +optional - Status Status `json:"status"` -} - -//+kubebuilder:object:root=true - -// LedgerList contains a list of Ledger -type LedgerList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Ledger `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Ledger{}, &LedgerList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/monitoring.go b/components/operator/api/stack.formance.com/components/v1beta2/monitoring.go deleted file mode 100644 index 177080c8db..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/monitoring.go +++ /dev/null @@ -1,35 +0,0 @@ -// +kubebuilder:object:generate=true -package v1beta2 - -import ( - v1 "k8s.io/api/core/v1" -) - -type MonitoringSpec struct { - // +optional - Traces *TracesSpec `json:"traces,omitempty"` -} - -type TracesOtlpSpec struct { - // +optional - Endpoint string `json:"endpoint,omitempty"` - // +optional - EndpointFrom *v1.EnvVarSource `json:"endpointFrom,omitempty"` - // +optional - Port int32 `json:"port,omitempty"` - // +optional - PortFrom *v1.EnvVarSource `json:"portFrom,omitempty"` - // +optional - Insecure bool `json:"insecure,omitempty"` - // +kubebuilder:validation:Enum:={grpc,http} - // +kubebuilder:validation:default:=grpc - // +optional - Mode string `json:"mode,omitempty"` - // +optional - ResourceAttributes string `json:"resourceAttributes,omitempty"` -} - -type TracesSpec struct { - // +optional - Otlp *TracesOtlpSpec `json:"otlp,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/orchestration_types.go b/components/operator/api/stack.formance.com/components/v1beta2/orchestration_types.go deleted file mode 100644 index 2dff92cd75..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/orchestration_types.go +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type TemporalTLSConfig struct { - CRT string `json:"crt"` - Key string `json:"key"` -} - -type TemporalConfig struct { - Address string `json:"address"` - Namespace string `json:"namespace"` - TaskQueue string `json:"taskQueue"` - TLS TemporalTLSConfig `json:"tls"` -} - -func (in *TemporalConfig) Env() []corev1.EnvVar { - return []corev1.EnvVar{ - Env("TEMPORAL_ADDRESS", in.Address), - Env("TEMPORAL_NAMESPACE", in.Namespace), - Env("TEMPORAL_SSL_CLIENT_KEY", in.TLS.Key), - Env("TEMPORAL_SSL_CLIENT_CERT", in.TLS.CRT), - Env("TEMPORAL_TASK_QUEUE", in.TaskQueue), - } -} - -// OrchestrationSpec defines the desired state of Orchestration -type OrchestrationSpec struct { - CommonServiceProperties `json:",inline"` - Scalable `json:",inline"` - - // +optional - Postgres PostgresConfigCreateDatabase `json:"postgres"` - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` - // +optional - Collector *CollectorConfig `json:"collector"` - - Auth OAuth2ClientConfiguration `json:"auth"` - StackURL string `json:"stackUrl"` - Temporal TemporalConfig `json:"temporal"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector -//+kubebuilder:storageversion - -// Orchestration is the Schema for the orchestrations API -type Orchestration struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec OrchestrationSpec `json:"spec"` - // +optional - Status Status `json:"status"` -} - -//+kubebuilder:object:root=true - -// OrchestrationList contains a list of Orchestration -type OrchestrationList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Orchestration `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Orchestration{}, &OrchestrationList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/payments_types.go b/components/operator/api/stack.formance.com/components/v1beta2/payments_types.go deleted file mode 100644 index 396aca316e..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/payments_types.go +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// PaymentsSpec defines the desired state of Payments -type PaymentsSpec struct { - CommonServiceProperties `json:",inline"` - - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` - // +optional - Collector *CollectorConfig `json:"collector"` - // +optional - Postgres PostgresConfigCreateDatabase `json:"postgres"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:storageversion - -// Payments is the Schema for the payments API -type Payments struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec PaymentsSpec `json:"spec,omitempty"` - Status Status `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// PaymentsList contains a list of Payments -type PaymentsList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Payments `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Payments{}, &PaymentsList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/postgres.go b/components/operator/api/stack.formance.com/components/v1beta2/postgres.go deleted file mode 100644 index a3c3a8a714..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/postgres.go +++ /dev/null @@ -1,51 +0,0 @@ -// +kubebuilder:object:generate=true -package v1beta2 - -import ( - corev1 "k8s.io/api/core/v1" -) - -type ConfigSource struct { - // Selects a key of a ConfigMap. - // +optional - ConfigMapKeyRef *corev1.ConfigMapKeySelector `json:"configMapKeyRef,omitempty" protobuf:"bytes,3,opt,name=configMapKeyRef"` - // Selects a key of a secret in the pod's namespace - // +optional - SecretKeyRef *corev1.SecretKeySelector `json:"secretKeyRef,omitempty" protobuf:"bytes,4,opt,name=secretKeyRef"` -} - -func (c *ConfigSource) Env() *corev1.EnvVarSource { - return &corev1.EnvVarSource{ - ConfigMapKeyRef: c.ConfigMapKeyRef, - SecretKeyRef: c.SecretKeyRef, - } -} - -type PostgresConfig struct { - // +optional - Port int `json:"port"` - // +optional - PortFrom *ConfigSource `json:"portFrom"` - // +optional - Host string `json:"host"` - // +optional - HostFrom *ConfigSource `json:"hostFrom"` - // +optional - Username string `json:"username"` - // +optional - UsernameFrom *ConfigSource `json:"usernameFrom"` - // +optional - Password string `json:"password"` - // +optional - PasswordFrom *ConfigSource `json:"passwordFrom"` - // +optional - DisableSSLMode bool `json:"disableSSLMode"` -} - -type PostgresConfigWithDatabase struct { - PostgresConfig `json:",inline"` - // +optional - Database string `json:"database"` - // +optional - DatabaseFrom *ConfigSource `json:"databaseFrom"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/scale.go b/components/operator/api/stack.formance.com/components/v1beta2/scale.go deleted file mode 100644 index af0bdc9074..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/scale.go +++ /dev/null @@ -1,32 +0,0 @@ -package v1beta2 - -import ( - autoscallingv2 "k8s.io/api/autoscaling/v2" -) - -type Scalable struct { - // +optional - // +kubebuilder:default:=1 - Replicas *int32 `json:"replicas,omitempty"` - // minReplicas is the lower limit for the number of replicas to which the autoscaler - // can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - // alpha feature gate HPAScaleToZero is enabled and at least one Object or External - // metric is configured. Scaling is active as long as at least one metric value is - // available. - // +optional - MinReplicas *int32 `json:"minReplicas,omitempty" protobuf:"varint,2,opt,name=minReplicas"` - // upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - // If not specified, the default will be 10 - // +optional - // +kubebuilder:default:=10 - MaxReplicas int32 `json:"maxReplicas,omitempty" protobuf:"varint,3,opt,name=maxReplicas"` - // metrics contains the specifications for which to use to calculate the - // desired replica count (the maximum replica count across all metrics will - // be used). The desired replica count is calculated multiplying the - // ratio between the target value and the current value by the current - // number of pods. Ergo, metrics used must decrease as the pod count is - // increased, and vice-versa. See the individual metric source types for - // more information about how each type of metric must respond. - // +optional - Metrics []autoscallingv2.MetricSpec `json:"metrics,omitempty" protobuf:"bytes,4,rep,name=metrics"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/search_types.go b/components/operator/api/stack.formance.com/components/v1beta2/search_types.go deleted file mode 100644 index 23090ac11f..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/search_types.go +++ /dev/null @@ -1,106 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type ElasticSearchTLSConfig struct { - // +optional - Enabled bool `json:"enabled,omitempty"` - // +optional - SkipCertVerify bool `json:"skipCertVerify,omitempty"` -} - -type ElasticSearchBasicAuthConfig struct { - Username string `json:"username"` - Password string `json:"password"` -} - -type ElasticSearchConfig struct { - // +optional - // +kubebuilder:validation:Enum:={http,https} - // +kubebuilder:validation:default:=https - Scheme string `json:"scheme,omitempty"` - // +optional - Host string `json:"host,omitempty"` - // +optional - HostFrom *ConfigSource `json:"hostFrom,omitempty"` - // +optional - Port uint16 `json:"port,omitempty"` - // +optional - PortFrom *ConfigSource `json:"portFrom,omitempty"` - // +optional - TLS ElasticSearchTLSConfig `json:"tls"` - // +optional - BasicAuth *ElasticSearchBasicAuthConfig `json:"basicAuth"` - // +optional - PathPrefix string `json:"pathPrefix"` - // +optional - UseZinc bool `json:"useZinc,omitempty"` -} - -type Batching struct { - Count int `json:"count"` - Period string `json:"period"` -} - -type SearchPostgresConfigs struct { - Ledger PostgresConfigWithDatabase `json:"ledger"` -} - -// SearchSpec defines the desired state of Search -type SearchSpec struct { - CommonServiceProperties `json:",inline"` - Scalable `json:",inline"` - - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` - ElasticSearch ElasticSearchConfig `json:"elasticsearch"` - KafkaConfig KafkaConfig `json:"kafka"` - Index string `json:"index"` - Batching Batching `json:"batching"` - PostgresConfigs SearchPostgresConfigs `json:"postgres"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector -//+kubebuilder:storageversion - -// Search is the Schema for the searches API -type Search struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec SearchSpec `json:"spec,omitempty"` - Status Status `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// SearchList contains a list of Search -type SearchList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Search `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Search{}, &SearchList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/shared_types.go b/components/operator/api/stack.formance.com/components/v1beta2/shared_types.go deleted file mode 100644 index 28ef143564..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/shared_types.go +++ /dev/null @@ -1,11 +0,0 @@ -package v1beta2 - -type PostgresConfigCreateDatabase struct { - PostgresConfigWithDatabase `json:",inline"` - CreateDatabase bool `json:"createDatabase"` -} - -type CollectorConfig struct { - KafkaConfig `json:",inline"` - Topic string `json:"topic"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/status.go b/components/operator/api/stack.formance.com/components/v1beta2/status.go deleted file mode 100644 index c63f540578..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/status.go +++ /dev/null @@ -1,15 +0,0 @@ -package v1beta2 - -type Status struct { - // +patchMergeKey=type - // +patchStrategy=merge - Conditions Conditions `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` -} - -type ReplicationStatus struct { - Status `json:",inline"` - // +optional - Replicas int32 `json:"replicas"` - // +optional - Selector string `json:"selector"` -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/wallets_types.go b/components/operator/api/stack.formance.com/components/v1beta2/wallets_types.go deleted file mode 100644 index 7ef4878291..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/wallets_types.go +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright 2022. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type OAuth2ClientConfiguration struct { - ClientID string `json:"clientId"` - ClientSecret string `json:"clientSecret"` -} - -// WalletsSpec defines the desired state of Wallets -type WalletsSpec struct { - CommonServiceProperties `json:",inline"` - Auth OAuth2ClientConfiguration `json:"auth"` - StackURL string `json:"stackUrl"` - - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:storageversion - -// Wallets is the Schema for the Wallets API -type Wallets struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec WalletsSpec `json:"spec,omitempty"` - Status Status `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// WalletsList contains a list of Wallets -type WalletsList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Wallets `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Wallets{}, &WalletsList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/webhooks_types.go b/components/operator/api/stack.formance.com/components/v1beta2/webhooks_types.go deleted file mode 100644 index 82861e96d0..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/webhooks_types.go +++ /dev/null @@ -1,55 +0,0 @@ -/* -Copyright 2022. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// WebhooksSpec defines the desired state of Webhooks -type WebhooksSpec struct { - CommonServiceProperties `json:",inline"` - - Collector *CollectorConfig `json:"collector"` - // +optional - Postgres PostgresConfigCreateDatabase `json:"postgres"` - // +optional - Monitoring *MonitoringSpec `json:"monitoring"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:storageversion - -// Webhooks is the Schema for the Webhooks API -type Webhooks struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec WebhooksSpec `json:"spec,omitempty"` - Status Status `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// WebhooksList contains a list of Webhooks -type WebhooksList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Webhooks `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Webhooks{}, &WebhooksList{}) -} diff --git a/components/operator/api/stack.formance.com/components/v1beta2/zz_generated.deepcopy.go b/components/operator/api/stack.formance.com/components/v1beta2/zz_generated.deepcopy.go deleted file mode 100644 index 1e7c16cb00..0000000000 --- a/components/operator/api/stack.formance.com/components/v1beta2/zz_generated.deepcopy.go +++ /dev/null @@ -1,1534 +0,0 @@ -//go:build !ignore_autogenerated - -/* -Copyright 2023. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by controller-gen. DO NOT EDIT. - -package v1beta2 - -import ( - auth_componentsv1beta2 "github.com/formancehq/operator/api/stack.formance.com/auth.components/v1beta2" - "k8s.io/api/autoscaling/v2" - "k8s.io/api/core/v1" - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Auth) DeepCopyInto(out *Auth) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Auth. -func (in *Auth) DeepCopy() *Auth { - if in == nil { - return nil - } - out := new(Auth) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Auth) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuthClientConfiguration) DeepCopyInto(out *AuthClientConfiguration) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthClientConfiguration. -func (in *AuthClientConfiguration) DeepCopy() *AuthClientConfiguration { - if in == nil { - return nil - } - out := new(AuthClientConfiguration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuthConfigSpec) DeepCopyInto(out *AuthConfigSpec) { - *out = *in - if in.OAuth2 != nil { - in, out := &in.OAuth2, &out.OAuth2 - *out = new(OAuth2ConfigSpec) - (*in).DeepCopyInto(*out) - } - if in.HTTPBasic != nil { - in, out := &in.HTTPBasic, &out.HTTPBasic - *out = new(HTTPBasicConfigSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthConfigSpec. -func (in *AuthConfigSpec) DeepCopy() *AuthConfigSpec { - if in == nil { - return nil - } - out := new(AuthConfigSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuthList) DeepCopyInto(out *AuthList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Auth, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthList. -func (in *AuthList) DeepCopy() *AuthList { - if in == nil { - return nil - } - out := new(AuthList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *AuthList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuthSpec) DeepCopyInto(out *AuthSpec) { - *out = *in - out.CommonServiceProperties = in.CommonServiceProperties - in.Scalable.DeepCopyInto(&out.Scalable) - in.Postgres.DeepCopyInto(&out.Postgres) - in.DelegatedOIDCServer.DeepCopyInto(&out.DelegatedOIDCServer) - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } - if in.StaticClients != nil { - in, out := &in.StaticClients, &out.StaticClients - *out = make([]auth_componentsv1beta2.StaticClient, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthSpec. -func (in *AuthSpec) DeepCopy() *AuthSpec { - if in == nil { - return nil - } - out := new(AuthSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Batching) DeepCopyInto(out *Batching) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Batching. -func (in *Batching) DeepCopy() *Batching { - if in == nil { - return nil - } - out := new(Batching) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CollectorConfig) DeepCopyInto(out *CollectorConfig) { - *out = *in - in.KafkaConfig.DeepCopyInto(&out.KafkaConfig) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CollectorConfig. -func (in *CollectorConfig) DeepCopy() *CollectorConfig { - if in == nil { - return nil - } - out := new(CollectorConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CommonServiceProperties) DeepCopyInto(out *CommonServiceProperties) { - *out = *in - out.DevProperties = in.DevProperties -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonServiceProperties. -func (in *CommonServiceProperties) DeepCopy() *CommonServiceProperties { - if in == nil { - return nil - } - out := new(CommonServiceProperties) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Condition) DeepCopyInto(out *Condition) { - *out = *in - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition. -func (in *Condition) DeepCopy() *Condition { - if in == nil { - return nil - } - out := new(Condition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in Conditions) DeepCopyInto(out *Conditions) { - { - in := &in - *out = make(Conditions, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Conditions. -func (in Conditions) DeepCopy() Conditions { - if in == nil { - return nil - } - out := new(Conditions) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigSource) DeepCopyInto(out *ConfigSource) { - *out = *in - if in.ConfigMapKeyRef != nil { - in, out := &in.ConfigMapKeyRef, &out.ConfigMapKeyRef - *out = new(v1.ConfigMapKeySelector) - (*in).DeepCopyInto(*out) - } - if in.SecretKeyRef != nil { - in, out := &in.SecretKeyRef, &out.SecretKeyRef - *out = new(v1.SecretKeySelector) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigSource. -func (in *ConfigSource) DeepCopy() *ConfigSource { - if in == nil { - return nil - } - out := new(ConfigSource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Control) DeepCopyInto(out *Control) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Control. -func (in *Control) DeepCopy() *Control { - if in == nil { - return nil - } - out := new(Control) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Control) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ControlList) DeepCopyInto(out *ControlList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Control, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlList. -func (in *ControlList) DeepCopy() *ControlList { - if in == nil { - return nil - } - out := new(ControlList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ControlList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ControlSpec) DeepCopyInto(out *ControlSpec) { - *out = *in - out.CommonServiceProperties = in.CommonServiceProperties - in.Scalable.DeepCopyInto(&out.Scalable) - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } - out.AuthClientConfiguration = in.AuthClientConfiguration -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlSpec. -func (in *ControlSpec) DeepCopy() *ControlSpec { - if in == nil { - return nil - } - out := new(ControlSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Counterparties) DeepCopyInto(out *Counterparties) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Counterparties. -func (in *Counterparties) DeepCopy() *Counterparties { - if in == nil { - return nil - } - out := new(Counterparties) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Counterparties) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CounterpartiesList) DeepCopyInto(out *CounterpartiesList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Counterparties, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CounterpartiesList. -func (in *CounterpartiesList) DeepCopy() *CounterpartiesList { - if in == nil { - return nil - } - out := new(CounterpartiesList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *CounterpartiesList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CounterpartiesSpec) DeepCopyInto(out *CounterpartiesSpec) { - *out = *in - out.CommonServiceProperties = in.CommonServiceProperties - in.Postgres.DeepCopyInto(&out.Postgres) - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CounterpartiesSpec. -func (in *CounterpartiesSpec) DeepCopy() *CounterpartiesSpec { - if in == nil { - return nil - } - out := new(CounterpartiesSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DelegatedOIDCServerConfiguration) DeepCopyInto(out *DelegatedOIDCServerConfiguration) { - *out = *in - if in.IssuerFrom != nil { - in, out := &in.IssuerFrom, &out.IssuerFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.ClientIDFrom != nil { - in, out := &in.ClientIDFrom, &out.ClientIDFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.ClientSecretFrom != nil { - in, out := &in.ClientSecretFrom, &out.ClientSecretFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DelegatedOIDCServerConfiguration. -func (in *DelegatedOIDCServerConfiguration) DeepCopy() *DelegatedOIDCServerConfiguration { - if in == nil { - return nil - } - out := new(DelegatedOIDCServerConfiguration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DevProperties) DeepCopyInto(out *DevProperties) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DevProperties. -func (in *DevProperties) DeepCopy() *DevProperties { - if in == nil { - return nil - } - out := new(DevProperties) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ElasticSearchBasicAuthConfig) DeepCopyInto(out *ElasticSearchBasicAuthConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticSearchBasicAuthConfig. -func (in *ElasticSearchBasicAuthConfig) DeepCopy() *ElasticSearchBasicAuthConfig { - if in == nil { - return nil - } - out := new(ElasticSearchBasicAuthConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ElasticSearchConfig) DeepCopyInto(out *ElasticSearchConfig) { - *out = *in - if in.HostFrom != nil { - in, out := &in.HostFrom, &out.HostFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.PortFrom != nil { - in, out := &in.PortFrom, &out.PortFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - out.TLS = in.TLS - if in.BasicAuth != nil { - in, out := &in.BasicAuth, &out.BasicAuth - *out = new(ElasticSearchBasicAuthConfig) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticSearchConfig. -func (in *ElasticSearchConfig) DeepCopy() *ElasticSearchConfig { - if in == nil { - return nil - } - out := new(ElasticSearchConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ElasticSearchTLSConfig) DeepCopyInto(out *ElasticSearchTLSConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticSearchTLSConfig. -func (in *ElasticSearchTLSConfig) DeepCopy() *ElasticSearchTLSConfig { - if in == nil { - return nil - } - out := new(ElasticSearchTLSConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HTTPBasicConfigSpec) DeepCopyInto(out *HTTPBasicConfigSpec) { - *out = *in - if in.Credentials != nil { - in, out := &in.Credentials, &out.Credentials - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPBasicConfigSpec. -func (in *HTTPBasicConfigSpec) DeepCopy() *HTTPBasicConfigSpec { - if in == nil { - return nil - } - out := new(HTTPBasicConfigSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageHolder) DeepCopyInto(out *ImageHolder) { - *out = *in - if in.ImagePullSecrets != nil { - in, out := &in.ImagePullSecrets, &out.ImagePullSecrets - *out = make([]v1.LocalObjectReference, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageHolder. -func (in *ImageHolder) DeepCopy() *ImageHolder { - if in == nil { - return nil - } - out := new(ImageHolder) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IngressSpec) DeepCopyInto(out *IngressSpec) { - *out = *in - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.TLS != nil { - in, out := &in.TLS, &out.TLS - *out = new(IngressTLS) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec. -func (in *IngressSpec) DeepCopy() *IngressSpec { - if in == nil { - return nil - } - out := new(IngressSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IngressTLS) DeepCopyInto(out *IngressTLS) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressTLS. -func (in *IngressTLS) DeepCopy() *IngressTLS { - if in == nil { - return nil - } - out := new(IngressTLS) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KafkaConfig) DeepCopyInto(out *KafkaConfig) { - *out = *in - if in.Brokers != nil { - in, out := &in.Brokers, &out.Brokers - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.BrokersFrom != nil { - in, out := &in.BrokersFrom, &out.BrokersFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.SASL != nil { - in, out := &in.SASL, &out.SASL - *out = new(KafkaSASLConfig) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KafkaConfig. -func (in *KafkaConfig) DeepCopy() *KafkaConfig { - if in == nil { - return nil - } - out := new(KafkaConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KafkaSASLConfig) DeepCopyInto(out *KafkaSASLConfig) { - *out = *in - if in.UsernameFrom != nil { - in, out := &in.UsernameFrom, &out.UsernameFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.PasswordFrom != nil { - in, out := &in.PasswordFrom, &out.PasswordFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KafkaSASLConfig. -func (in *KafkaSASLConfig) DeepCopy() *KafkaSASLConfig { - if in == nil { - return nil - } - out := new(KafkaSASLConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Ledger) DeepCopyInto(out *Ledger) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ledger. -func (in *Ledger) DeepCopy() *Ledger { - if in == nil { - return nil - } - out := new(Ledger) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Ledger) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LedgerList) DeepCopyInto(out *LedgerList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Ledger, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LedgerList. -func (in *LedgerList) DeepCopy() *LedgerList { - if in == nil { - return nil - } - out := new(LedgerList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *LedgerList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LedgerSpec) DeepCopyInto(out *LedgerSpec) { - *out = *in - out.CommonServiceProperties = in.CommonServiceProperties - in.Scalable.DeepCopyInto(&out.Scalable) - in.Postgres.DeepCopyInto(&out.Postgres) - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } - if in.Collector != nil { - in, out := &in.Collector, &out.Collector - *out = new(CollectorConfig) - (*in).DeepCopyInto(*out) - } - in.LockingStrategy.DeepCopyInto(&out.LockingStrategy) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LedgerSpec. -func (in *LedgerSpec) DeepCopy() *LedgerSpec { - if in == nil { - return nil - } - out := new(LedgerSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LockingStrategy) DeepCopyInto(out *LockingStrategy) { - *out = *in - if in.Redis != nil { - in, out := &in.Redis, &out.Redis - *out = new(LockingStrategyRedisConfig) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LockingStrategy. -func (in *LockingStrategy) DeepCopy() *LockingStrategy { - if in == nil { - return nil - } - out := new(LockingStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LockingStrategyRedisConfig) DeepCopyInto(out *LockingStrategyRedisConfig) { - *out = *in - if in.UriFrom != nil { - in, out := &in.UriFrom, &out.UriFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LockingStrategyRedisConfig. -func (in *LockingStrategyRedisConfig) DeepCopy() *LockingStrategyRedisConfig { - if in == nil { - return nil - } - out := new(LockingStrategyRedisConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitoringSpec) DeepCopyInto(out *MonitoringSpec) { - *out = *in - if in.Traces != nil { - in, out := &in.Traces, &out.Traces - *out = new(TracesSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitoringSpec. -func (in *MonitoringSpec) DeepCopy() *MonitoringSpec { - if in == nil { - return nil - } - out := new(MonitoringSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NatsConfig) DeepCopyInto(out *NatsConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NatsConfig. -func (in *NatsConfig) DeepCopy() *NatsConfig { - if in == nil { - return nil - } - out := new(NatsConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OAuth2ClientConfiguration) DeepCopyInto(out *OAuth2ClientConfiguration) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuth2ClientConfiguration. -func (in *OAuth2ClientConfiguration) DeepCopy() *OAuth2ClientConfiguration { - if in == nil { - return nil - } - out := new(OAuth2ClientConfiguration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OAuth2ConfigSpec) DeepCopyInto(out *OAuth2ConfigSpec) { - *out = *in - if in.Audiences != nil { - in, out := &in.Audiences, &out.Audiences - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuth2ConfigSpec. -func (in *OAuth2ConfigSpec) DeepCopy() *OAuth2ConfigSpec { - if in == nil { - return nil - } - out := new(OAuth2ConfigSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Orchestration) DeepCopyInto(out *Orchestration) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Orchestration. -func (in *Orchestration) DeepCopy() *Orchestration { - if in == nil { - return nil - } - out := new(Orchestration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Orchestration) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OrchestrationList) DeepCopyInto(out *OrchestrationList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Orchestration, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrchestrationList. -func (in *OrchestrationList) DeepCopy() *OrchestrationList { - if in == nil { - return nil - } - out := new(OrchestrationList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OrchestrationList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OrchestrationSpec) DeepCopyInto(out *OrchestrationSpec) { - *out = *in - out.CommonServiceProperties = in.CommonServiceProperties - in.Scalable.DeepCopyInto(&out.Scalable) - in.Postgres.DeepCopyInto(&out.Postgres) - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } - if in.Collector != nil { - in, out := &in.Collector, &out.Collector - *out = new(CollectorConfig) - (*in).DeepCopyInto(*out) - } - out.Auth = in.Auth - out.Temporal = in.Temporal -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrchestrationSpec. -func (in *OrchestrationSpec) DeepCopy() *OrchestrationSpec { - if in == nil { - return nil - } - out := new(OrchestrationSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Payments) DeepCopyInto(out *Payments) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Payments. -func (in *Payments) DeepCopy() *Payments { - if in == nil { - return nil - } - out := new(Payments) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Payments) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PaymentsList) DeepCopyInto(out *PaymentsList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Payments, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PaymentsList. -func (in *PaymentsList) DeepCopy() *PaymentsList { - if in == nil { - return nil - } - out := new(PaymentsList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *PaymentsList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PaymentsSpec) DeepCopyInto(out *PaymentsSpec) { - *out = *in - out.CommonServiceProperties = in.CommonServiceProperties - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } - if in.Collector != nil { - in, out := &in.Collector, &out.Collector - *out = new(CollectorConfig) - (*in).DeepCopyInto(*out) - } - in.Postgres.DeepCopyInto(&out.Postgres) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PaymentsSpec. -func (in *PaymentsSpec) DeepCopy() *PaymentsSpec { - if in == nil { - return nil - } - out := new(PaymentsSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PostgresConfig) DeepCopyInto(out *PostgresConfig) { - *out = *in - if in.PortFrom != nil { - in, out := &in.PortFrom, &out.PortFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.HostFrom != nil { - in, out := &in.HostFrom, &out.HostFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.UsernameFrom != nil { - in, out := &in.UsernameFrom, &out.UsernameFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.PasswordFrom != nil { - in, out := &in.PasswordFrom, &out.PasswordFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresConfig. -func (in *PostgresConfig) DeepCopy() *PostgresConfig { - if in == nil { - return nil - } - out := new(PostgresConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PostgresConfigCreateDatabase) DeepCopyInto(out *PostgresConfigCreateDatabase) { - *out = *in - in.PostgresConfigWithDatabase.DeepCopyInto(&out.PostgresConfigWithDatabase) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresConfigCreateDatabase. -func (in *PostgresConfigCreateDatabase) DeepCopy() *PostgresConfigCreateDatabase { - if in == nil { - return nil - } - out := new(PostgresConfigCreateDatabase) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PostgresConfigWithDatabase) DeepCopyInto(out *PostgresConfigWithDatabase) { - *out = *in - in.PostgresConfig.DeepCopyInto(&out.PostgresConfig) - if in.DatabaseFrom != nil { - in, out := &in.DatabaseFrom, &out.DatabaseFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresConfigWithDatabase. -func (in *PostgresConfigWithDatabase) DeepCopy() *PostgresConfigWithDatabase { - if in == nil { - return nil - } - out := new(PostgresConfigWithDatabase) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ReplicationStatus) DeepCopyInto(out *ReplicationStatus) { - *out = *in - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationStatus. -func (in *ReplicationStatus) DeepCopy() *ReplicationStatus { - if in == nil { - return nil - } - out := new(ReplicationStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Scalable) DeepCopyInto(out *Scalable) { - *out = *in - if in.Replicas != nil { - in, out := &in.Replicas, &out.Replicas - *out = new(int32) - **out = **in - } - if in.MinReplicas != nil { - in, out := &in.MinReplicas, &out.MinReplicas - *out = new(int32) - **out = **in - } - if in.Metrics != nil { - in, out := &in.Metrics, &out.Metrics - *out = make([]v2.MetricSpec, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scalable. -func (in *Scalable) DeepCopy() *Scalable { - if in == nil { - return nil - } - out := new(Scalable) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Search) DeepCopyInto(out *Search) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Search. -func (in *Search) DeepCopy() *Search { - if in == nil { - return nil - } - out := new(Search) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Search) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SearchList) DeepCopyInto(out *SearchList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Search, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchList. -func (in *SearchList) DeepCopy() *SearchList { - if in == nil { - return nil - } - out := new(SearchList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SearchList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SearchPostgresConfigs) DeepCopyInto(out *SearchPostgresConfigs) { - *out = *in - in.Ledger.DeepCopyInto(&out.Ledger) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchPostgresConfigs. -func (in *SearchPostgresConfigs) DeepCopy() *SearchPostgresConfigs { - if in == nil { - return nil - } - out := new(SearchPostgresConfigs) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SearchSpec) DeepCopyInto(out *SearchSpec) { - *out = *in - out.CommonServiceProperties = in.CommonServiceProperties - in.Scalable.DeepCopyInto(&out.Scalable) - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } - in.ElasticSearch.DeepCopyInto(&out.ElasticSearch) - in.KafkaConfig.DeepCopyInto(&out.KafkaConfig) - out.Batching = in.Batching - in.PostgresConfigs.DeepCopyInto(&out.PostgresConfigs) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchSpec. -func (in *SearchSpec) DeepCopy() *SearchSpec { - if in == nil { - return nil - } - out := new(SearchSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Status) DeepCopyInto(out *Status) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Status. -func (in *Status) DeepCopy() *Status { - if in == nil { - return nil - } - out := new(Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TemporalConfig) DeepCopyInto(out *TemporalConfig) { - *out = *in - out.TLS = in.TLS -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalConfig. -func (in *TemporalConfig) DeepCopy() *TemporalConfig { - if in == nil { - return nil - } - out := new(TemporalConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TemporalTLSConfig) DeepCopyInto(out *TemporalTLSConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalTLSConfig. -func (in *TemporalTLSConfig) DeepCopy() *TemporalTLSConfig { - if in == nil { - return nil - } - out := new(TemporalTLSConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TracesOtlpSpec) DeepCopyInto(out *TracesOtlpSpec) { - *out = *in - if in.EndpointFrom != nil { - in, out := &in.EndpointFrom, &out.EndpointFrom - *out = new(v1.EnvVarSource) - (*in).DeepCopyInto(*out) - } - if in.PortFrom != nil { - in, out := &in.PortFrom, &out.PortFrom - *out = new(v1.EnvVarSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracesOtlpSpec. -func (in *TracesOtlpSpec) DeepCopy() *TracesOtlpSpec { - if in == nil { - return nil - } - out := new(TracesOtlpSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TracesSpec) DeepCopyInto(out *TracesSpec) { - *out = *in - if in.Otlp != nil { - in, out := &in.Otlp, &out.Otlp - *out = new(TracesOtlpSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracesSpec. -func (in *TracesSpec) DeepCopy() *TracesSpec { - if in == nil { - return nil - } - out := new(TracesSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Wallets) DeepCopyInto(out *Wallets) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Wallets. -func (in *Wallets) DeepCopy() *Wallets { - if in == nil { - return nil - } - out := new(Wallets) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Wallets) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WalletsList) DeepCopyInto(out *WalletsList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Wallets, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WalletsList. -func (in *WalletsList) DeepCopy() *WalletsList { - if in == nil { - return nil - } - out := new(WalletsList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *WalletsList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WalletsSpec) DeepCopyInto(out *WalletsSpec) { - *out = *in - out.CommonServiceProperties = in.CommonServiceProperties - out.Auth = in.Auth - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WalletsSpec. -func (in *WalletsSpec) DeepCopy() *WalletsSpec { - if in == nil { - return nil - } - out := new(WalletsSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Webhooks) DeepCopyInto(out *Webhooks) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Webhooks. -func (in *Webhooks) DeepCopy() *Webhooks { - if in == nil { - return nil - } - out := new(Webhooks) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Webhooks) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WebhooksList) DeepCopyInto(out *WebhooksList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Webhooks, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhooksList. -func (in *WebhooksList) DeepCopy() *WebhooksList { - if in == nil { - return nil - } - out := new(WebhooksList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *WebhooksList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WebhooksSpec) DeepCopyInto(out *WebhooksSpec) { - *out = *in - out.CommonServiceProperties = in.CommonServiceProperties - if in.Collector != nil { - in, out := &in.Collector, &out.Collector - *out = new(CollectorConfig) - (*in).DeepCopyInto(*out) - } - in.Postgres.DeepCopyInto(&out.Postgres) - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhooksSpec. -func (in *WebhooksSpec) DeepCopy() *WebhooksSpec { - if in == nil { - return nil - } - out := new(WebhooksSpec) - in.DeepCopyInto(out) - return out -} diff --git a/components/operator/api/stack.formance.com/v1beta1/auth.go b/components/operator/api/stack.formance.com/v1beta1/auth.go deleted file mode 100644 index 5fef9d0e4a..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/auth.go +++ /dev/null @@ -1,32 +0,0 @@ -package v1beta1 - -type OAuth2ConfigSpec struct { - - // +required - IntrospectUrl string `json:"introspectUrl"` - - // +optional - Audiences []string `json:"audiences"` - - // +optional - AudienceWildcard bool `json:"audienceWildcard"` - - //+optional - ProtectedByScopes bool `json:"ProtectedByScopes"` -} - -type HTTPBasicConfigSpec struct { - // +optional - Enabled bool `json:"enabled"` - - // +optional - Credentials map[string]string `json:"credentials"` -} - -type AuthConfigSpec struct { - // +optional - OAuth2 *OAuth2ConfigSpec `json:"oauth2,omitempty"` - - // +optional - HTTPBasic *HTTPBasicConfigSpec `json:"basic,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta1/auth_types.go b/components/operator/api/stack.formance.com/v1beta1/auth_types.go deleted file mode 100644 index cbde6c45f8..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/auth_types.go +++ /dev/null @@ -1,30 +0,0 @@ -package v1beta1 - -type DelegatedOIDCServerConfiguration struct { - Issuer string `json:"issuer,omitempty"` - ClientID string `json:"clientID,omitempty"` - ClientSecret string `json:"clientSecret,omitempty"` -} - -type AuthSpec struct { - ImageHolder `json:",inline"` - // +optional - Postgres PostgresConfig `json:"postgres"` - // +optional - SigningKey string `json:"signingKey"` - // +optional - DelegatedOIDCServer *DelegatedOIDCServerConfiguration `json:"delegatedOIDCServer"` - // +optional - Ingress *IngressConfig `json:"ingress"` - // +optional - Host string `json:"host,omitempty"` - // +optional - Scheme string `json:"scheme,omitempty"` -} - -func (in *AuthSpec) GetScheme() string { - if in.Scheme != "" { - return in.Scheme - } - return "https" -} diff --git a/components/operator/api/stack.formance.com/v1beta1/common.go b/components/operator/api/stack.formance.com/v1beta1/common.go deleted file mode 100644 index 9760f4e777..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/common.go +++ /dev/null @@ -1,15 +0,0 @@ -package v1beta1 - -type DevProperties struct { - // +optional - Debug bool `json:"debug"` - // +optional - Dev bool `json:"dev"` -} - -type CommonServiceProperties struct { - DevProperties `json:",inline"` - // +optional - //+kubebuilder:default:="latest" - Version string `json:"version,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta1/condition.go b/components/operator/api/stack.formance.com/v1beta1/condition.go deleted file mode 100644 index 00fdde5e1b..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/condition.go +++ /dev/null @@ -1,44 +0,0 @@ -package v1beta1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type Condition struct { - // type of condition in CamelCase or in foo.example.com/CamelCase. - // --- - // Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - // useful (see .node.status.conditions), the ability to deconflict is important. - // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$` - // +kubebuilder:validation:MaxLength=316 - Type string `json:"type" protobuf:"bytes,1,opt,name=type"` - // status of the condition, one of True, False, Unknown. - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Enum=True;False;Unknown - Status metav1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status"` - // observedGeneration represents the .metadata.generation that the condition was set based upon. - // For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - // with respect to the current state of the instance. - // +kubebuilder:validation:Required - // +kubebuilder:validation:Minimum=0 - ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,3,opt,name=observedGeneration"` - // lastTransitionTime is the last time the condition transitioned from one status to another. - // This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Type=string - // +kubebuilder:validation:Format=date-time - LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,4,opt,name=lastTransitionTime"` - // message is a human readable message indicating details about the transition. - // This may be an empty string. - // +required - // +kubebuilder:validation:Optional - // +kubebuilder:validation:MaxLength=32768 - Message string `json:"message,omitempty" protobuf:"bytes,6,opt,name=message"` -} - -type Conditions []Condition diff --git a/components/operator/api/stack.formance.com/v1beta1/configuration_types.go b/components/operator/api/stack.formance.com/v1beta1/configuration_types.go deleted file mode 100644 index afb03dc20c..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/configuration_types.go +++ /dev/null @@ -1,137 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - "encoding/json" - - "github.com/formancehq/operator/api/stack.formance.com/v1beta3" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "sigs.k8s.io/controller-runtime/pkg/conversion" -) - -type KafkaSASLConfig struct { - Username string `json:"username,omitempty"` - Password string `json:"password,omitempty"` - Mechanism string `json:"mechanism"` - ScramSHASize string `json:"scramSHASize"` -} - -type KafkaConfig struct { - Brokers []string `json:"brokers"` - // +optional - TLS bool `json:"tls"` - // +optional - SASL *KafkaSASLConfig `json:"sasl,omitempty"` -} - -type ConfigurationSpec struct { - // +optional - Monitoring *MonitoringSpec `json:"monitoring,omitempty"` - // +optional - Services ServicesSpec `json:"services,omitempty"` - // +optional - Auth *AuthSpec `json:"auth,omitempty"` - // +optional - Ingress IngressGlobalConfig `json:"ingress"` - // +optional - Kafka *KafkaConfig `json:"kafka"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:resource:scope=Cluster -//+kubebuilder:subresource:status - -// Configuration is the Schema for the configurations API -type Configuration struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec ConfigurationSpec `json:"spec,omitempty"` - Status Status `json:"status,omitempty"` -} - -func (config *Configuration) ConvertFrom(hubRaw conversion.Hub) error { - hub := hubRaw.(*v1beta3.Configuration) - specAsRaw, err := json.Marshal(hub.Spec) - if err != nil { - return err - } - *config = Configuration{ - ObjectMeta: hub.ObjectMeta, - TypeMeta: hub.TypeMeta, - } - config.APIVersion = GroupVersion.String() - if err := json.Unmarshal(specAsRaw, &config.Spec); err != nil { - return err - } - - if hub.Spec.Broker.Kafka != nil { - kafkaConfigAsJSON, err := json.Marshal(hub.Spec.Broker.Kafka) - if err != nil { - return err - } - cfg := KafkaConfig{} - if err := json.Unmarshal(kafkaConfigAsJSON, &cfg); err != nil { - return err - } - - config.Spec.Kafka = &cfg - } - - return nil -} - -func (config *Configuration) ConvertTo(hubRaw conversion.Hub) error { - - hub := hubRaw.(*v1beta3.Configuration) - specAsRaw, err := json.Marshal(config.Spec) - if err != nil { - return err - } - if err := json.Unmarshal(specAsRaw, &hub.Spec); err != nil { - return err - } - hub.ObjectMeta = config.ObjectMeta - hub.TypeMeta = config.TypeMeta - hub.APIVersion = v1beta3.GroupVersion.String() - kafkaSpecAsJSON, err := json.Marshal(config.Spec.Kafka) - if err != nil { - return err - } - cfg := v1beta3.KafkaConfig{} - if err := json.Unmarshal(kafkaSpecAsJSON, &cfg); err != nil { - return err - } - hub.Spec.Broker.Kafka = &cfg - hub.Spec.Services.Payments.EncryptionKey = "default-encryption-key" - - return nil -} - -//+kubebuilder:object:root=true - -// ConfigurationList contains a list of Configuration -type ConfigurationList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Configuration `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Configuration{}, &ConfigurationList{}) -} diff --git a/components/operator/api/stack.formance.com/v1beta1/control_types.go b/components/operator/api/stack.formance.com/v1beta1/control_types.go deleted file mode 100644 index 80a5865110..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/control_types.go +++ /dev/null @@ -1,10 +0,0 @@ -package v1beta1 - -// +kubebuilder:object:generate=true -type ControlSpec struct { - ImageHolder `json:",inline"` - // +optional - Scaling ScalingSpec `json:"scaling,omitempty"` - // +optional - Ingress *IngressConfig `json:"ingress"` -} diff --git a/components/operator/api/stack.formance.com/v1beta1/groupversion_info.go b/components/operator/api/stack.formance.com/v1beta1/groupversion_info.go deleted file mode 100644 index 01414b2bc8..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/groupversion_info.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1beta1 contains API Schema definitions for the stack v1beta1 API group -// +kubebuilder:object:generate=true -// +groupName=stack.formance.com -package v1beta1 - -import ( - "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" -) - -var ( - // GroupVersion is group version used to register these objects - GroupVersion = schema.GroupVersion{Group: "stack.formance.com", Version: "v1beta1"} - - // SchemeBuilder is used to add go types to the GroupVersionKind scheme - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} - - // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme -) diff --git a/components/operator/api/stack.formance.com/v1beta1/image.go b/components/operator/api/stack.formance.com/v1beta1/image.go deleted file mode 100644 index af040cc300..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/image.go +++ /dev/null @@ -1,18 +0,0 @@ -package v1beta1 - -import ( - corev1 "k8s.io/api/core/v1" -) - -type ImageHolder struct { - // +optional - Image string `json:"image,omitempty"` - - // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - // If specified, these secrets will be passed to individual puller implementations for them to use. - // More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - // +optional - // +patchMergeKey=name - // +patchStrategy=merge - ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,15,rep,name=imagePullSecrets"` -} diff --git a/components/operator/api/stack.formance.com/v1beta1/ingress.go b/components/operator/api/stack.formance.com/v1beta1/ingress.go deleted file mode 100644 index fd9bebea9e..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/ingress.go +++ /dev/null @@ -1,21 +0,0 @@ -// +kubebuilder:object:generate=true -package v1beta1 - -type IngressSpec struct { - // +optional - Annotations map[string]string `json:"annotations"` - Path string `json:"path"` - Host string `json:"host"` - // +optional - TLS *IngressTLS `json:"tls"` -} - -type IngressTLS struct { - // SecretName is the name of the secret used to terminate TLS traffic on - // port 443. Field is left optional to allow TLS routing based on SNI - // hostname alone. If the SNI host in a listener conflicts with the "Host" - // header field used by an IngressRule, the SNI host is used for termination - // and value of the Host header is used for routing. - // +optional - SecretName string `json:"secretName,omitempty" protobuf:"bytes,2,opt,name=secretName"` -} diff --git a/components/operator/api/stack.formance.com/v1beta1/ledger_types.go b/components/operator/api/stack.formance.com/v1beta1/ledger_types.go deleted file mode 100644 index 95b4ef6784..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/ledger_types.go +++ /dev/null @@ -1,11 +0,0 @@ -package v1beta1 - -// +kubebuilder:object:generate=true -type LedgerSpec struct { - ImageHolder `json:",inline"` - Scalable `json:",inline"` - // +optional - Postgres PostgresConfig `json:"postgres"` - // +optional - Ingress *IngressConfig `json:"ingress"` -} diff --git a/components/operator/api/stack.formance.com/v1beta1/license_types.go b/components/operator/api/stack.formance.com/v1beta1/license_types.go deleted file mode 100644 index ef5fc5d100..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/license_types.go +++ /dev/null @@ -1,62 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! -// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. - -// LicenseSpec defines the desired state of License -type LicenseSpec struct { - //+Required - LicenceId string `json:"licenceId,omitempty"` -} - -// LicenseStatus defines the observed state of License -type LicenseStatus struct { - // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster - // Important: Run "make" to regenerate code after modifying this file -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:resource:scope=Cluster - -// License is the Schema for the licenses API -type License struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec LicenseSpec `json:"spec,omitempty"` - Status LicenseStatus `json:"status,omitempty"` -} - -//+kubebuilder:object:root=true - -// LicenseList contains a list of License -type LicenseList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []License `json:"items"` -} - -func init() { - SchemeBuilder.Register(&License{}, &LicenseList{}) -} diff --git a/components/operator/api/stack.formance.com/v1beta1/monitoring.go b/components/operator/api/stack.formance.com/v1beta1/monitoring.go deleted file mode 100644 index cdcaaedd03..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/monitoring.go +++ /dev/null @@ -1,35 +0,0 @@ -// +kubebuilder:object:generate=true -package v1beta1 - -import ( - v1 "k8s.io/api/core/v1" -) - -type MonitoringSpec struct { - // +optional - Traces *TracesSpec `json:"traces,omitempty"` -} - -type TracesOtlpSpec struct { - // +optional - Endpoint string `json:"endpoint,omitempty"` - // +optional - EndpointFrom *v1.EnvVarSource `json:"endpointFrom,omitempty"` - // +optional - Port int32 `json:"port,omitempty"` - // +optional - PortFrom *v1.EnvVarSource `json:"portFrom,omitempty"` - // +optional - Insecure bool `json:"insecure,omitempty"` - // +kubebuilder:validation:Enum:={grpc,http} - // +kubebuilder:validation:default:=grpc - // +optional - Mode string `json:"mode,omitempty"` - // +optional - ResourceAttributes string `json:"resourceAttributes,omitempty"` -} - -type TracesSpec struct { - // +optional - Otlp *TracesOtlpSpec `json:"otlp,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta1/payments_types.go b/components/operator/api/stack.formance.com/v1beta1/payments_types.go deleted file mode 100644 index ee64c4aa74..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/payments_types.go +++ /dev/null @@ -1,14 +0,0 @@ -package v1beta1 - -type MongoDBConfig struct{} - -// +kubebuilder:object:generate=true -type PaymentsSpec struct { - ImageHolder `json:",inline"` - // +optional - Scaling ScalingSpec `json:"scaling,omitempty"` - // +optional - Ingress *IngressConfig `json:"ingress"` - // +optional - MongoDB MongoDBConfig `json:"mongoDB"` -} diff --git a/components/operator/api/stack.formance.com/v1beta1/postgres.go b/components/operator/api/stack.formance.com/v1beta1/postgres.go deleted file mode 100644 index 9208137f2e..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/postgres.go +++ /dev/null @@ -1,44 +0,0 @@ -// +kubebuilder:object:generate=true -package v1beta1 - -import ( - corev1 "k8s.io/api/core/v1" -) - -type ConfigSource struct { - // Selects a key of a ConfigMap. - // +optional - ConfigMapKeyRef *corev1.ConfigMapKeySelector `json:"configMapKeyRef,omitempty" protobuf:"bytes,3,opt,name=configMapKeyRef"` - // Selects a key of a secret in the pod's namespace - // +optional - SecretKeyRef *corev1.SecretKeySelector `json:"secretKeyRef,omitempty" protobuf:"bytes,4,opt,name=secretKeyRef"` -} - -type PostgresConfig struct { - // +optional - Port int `json:"port"` - // +optional - PortFrom *ConfigSource `json:"portFrom"` - // +optional - Host string `json:"host"` - // +optional - HostFrom *ConfigSource `json:"hostFrom"` - // +optional - Username string `json:"username"` - // +optional - UsernameFrom *ConfigSource `json:"usernameFrom"` - // +optional - Password string `json:"password"` - // +optional - PasswordFrom *ConfigSource `json:"passwordFrom"` - // +optional - DisableSSLMode bool `json:"disableSSLMode"` -} - -type PostgresConfigWithDatabase struct { - PostgresConfig `json:",inline"` - // +optional - Database string `json:"database"` - // +optional - DatabaseFrom *ConfigSource `json:"databaseFrom"` -} diff --git a/components/operator/api/stack.formance.com/v1beta1/scale.go b/components/operator/api/stack.formance.com/v1beta1/scale.go deleted file mode 100644 index 16365dd8b1..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/scale.go +++ /dev/null @@ -1,32 +0,0 @@ -package v1beta1 - -import ( - autoscallingv2 "k8s.io/api/autoscaling/v2" -) - -type Scalable struct { - // +optional - // +kubebuilder:default:=1 - Replicas *int32 `json:"replicas,omitempty"` - // minReplicas is the lower limit for the number of replicas to which the autoscaler - // can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - // alpha feature gate HPAScaleToZero is enabled and at least one Object or External - // metric is configured. Scaling is active as long as at least one metric value is - // available. - // +optional - MinReplicas *int32 `json:"minReplicas,omitempty" protobuf:"varint,2,opt,name=minReplicas"` - // upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - // If not specified, the default will be 10 - // +optional - // +kubebuilder:default:=10 - MaxReplicas int32 `json:"maxReplicas,omitempty" protobuf:"varint,3,opt,name=maxReplicas"` - // metrics contains the specifications for which to use to calculate the - // desired replica count (the maximum replica count across all metrics will - // be used). The desired replica count is calculated multiplying the - // ratio between the target value and the current value by the current - // number of pods. Ergo, metrics used must decrease as the pod count is - // increased, and vice-versa. See the individual metric source types for - // more information about how each type of metric must respond. - // +optional - Metrics []autoscallingv2.MetricSpec `json:"metrics,omitempty" protobuf:"bytes,4,rep,name=metrics"` -} diff --git a/components/operator/api/stack.formance.com/v1beta1/search_types.go b/components/operator/api/stack.formance.com/v1beta1/search_types.go deleted file mode 100644 index d498b1fb3c..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/search_types.go +++ /dev/null @@ -1,12 +0,0 @@ -package v1beta1 - -// +kubebuilder:object:generate=true -type SearchSpec struct { - ImageHolder `json:",inline"` - - // +optional - Scaling ScalingSpec `json:"scaling,omitempty"` - - //+optional - Ingress *IngressConfig `json:"ingress"` -} diff --git a/components/operator/api/stack.formance.com/v1beta1/shared_types.go b/components/operator/api/stack.formance.com/v1beta1/shared_types.go deleted file mode 100644 index 5793e4f9bd..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/shared_types.go +++ /dev/null @@ -1,28 +0,0 @@ -package v1beta1 - -type ScalingSpec struct { - // +optional - Enabled bool `json:"enabled,omitempty"` - // +optional - MinReplica int `json:"minReplica,omitempty"` - // +optional - MaxReplica int `json:"maxReplica,omitempty"` - // +optional - CpuLimit int `json:"cpuLimit,omitempty"` -} - -type DatabaseSpec struct { - // +optional - Url string `json:"url,omitempty"` - // +optional - Type string `json:"type,omitempty"` -} - -type IngressConfig struct { - // +optional - Enabled *bool `json:"enabled"` - // +optional - Annotations map[string]string `json:"annotations"` - // +optional - Host string `json:"host"` -} diff --git a/components/operator/api/stack.formance.com/v1beta1/stack_types.go b/components/operator/api/stack.formance.com/v1beta1/stack_types.go deleted file mode 100644 index 371567d10b..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/stack_types.go +++ /dev/null @@ -1,135 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - "encoding/json" - - "github.com/formancehq/operator/api/stack.formance.com/v1beta3" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "sigs.k8s.io/controller-runtime/pkg/conversion" -) - -type IngressGlobalConfig struct { - // +optional - TLS *IngressTLS `json:"tls"` - // +optional - Enabled bool `json:"enabled,omitempty"` - // +optional - Annotations map[string]string `json:"annotations,omitempty"` -} - -// StackSpec defines the desired state of Stack -type StackSpec struct { - // +optional - Seed string `json:"seed"` - // +optional - ConfigurationSpec `json:",inline"` - - // +optional - Debug bool `json:"debug"` - // +required - Namespace string `json:"namespace,omitempty"` - // +optional - // +required - Host string `json:"host"` - // +optional - Scheme string `json:"scheme"` -} - -type ServicesSpec struct { - // +optional - Control *ControlSpec `json:"control,omitempty"` - // +optional - Ledger *LedgerSpec `json:"ledger,omitempty"` - // +optional - Payments *PaymentsSpec `json:"payments,omitempty"` - // +optional - Search *SearchSpec `json:"search,omitempty"` - // +optional - Webhooks *WebhooksSpec `json:"webhooks,omitempty"` -} - -type ControlAuthentication struct { - ClientID string -} - -type StackStatus struct { - Status `json:",inline"` -} - -// +kubebuilder:object:root=true -// +kubebuilder:subresource:status -// +kubebuilder:resource:scope=Cluster -// +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.progress` -// +kubebuilder:printcolumn:name="Version",type="string",JSONPath=".spec.version",description="Stack Version" -// +kubebuilder:printcolumn:name="Namespace",type="string",JSONPath=".spec.namespace",description="Stack Namespace" - -// Stack is the Schema for the stacks API -type Stack struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec StackSpec `json:"spec,omitempty"` - Status StackStatus `json:"status,omitempty"` -} - -func (stack *Stack) ConvertFrom(hubRaw conversion.Hub) error { - hub := hubRaw.(*v1beta3.Stack) - specAsRaw, err := json.Marshal(hub.Spec) - if err != nil { - return err - } - *stack = Stack{ - ObjectMeta: hub.ObjectMeta, - TypeMeta: hub.TypeMeta, - } - stack.APIVersion = GroupVersion.String() - if err := json.Unmarshal(specAsRaw, &stack.Spec); err != nil { - return err - } - return nil -} - -func (stack *Stack) ConvertTo(hubRaw conversion.Hub) error { - hub := hubRaw.(*v1beta3.Stack) - specAsRaw, err := json.Marshal(stack.Spec) - hub.ObjectMeta = stack.ObjectMeta - hub.TypeMeta = stack.TypeMeta - hub.TypeMeta.APIVersion = v1beta3.GroupVersion.String() - if err != nil { - return err - } - if err := json.Unmarshal(specAsRaw, &hub.Spec); err != nil { - return err - } - - return nil -} - -//+kubebuilder:object:root=true - -// StackList contains a list of Stack -type StackList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Stack `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Stack{}, &StackList{}) -} diff --git a/components/operator/api/stack.formance.com/v1beta1/status.go b/components/operator/api/stack.formance.com/v1beta1/status.go deleted file mode 100644 index 34badc89d6..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/status.go +++ /dev/null @@ -1,15 +0,0 @@ -package v1beta1 - -type Status struct { - // +patchMergeKey=type - // +patchStrategy=merge - Conditions Conditions `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` -} - -type ReplicationStatus struct { - Status `json:",inline"` - // +optional - Replicas int32 `json:"replicas"` - // +optional - Selector string `json:"selector"` -} diff --git a/components/operator/api/stack.formance.com/v1beta1/webhooks_types.go b/components/operator/api/stack.formance.com/v1beta1/webhooks_types.go deleted file mode 100644 index b2a4cdb01a..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/webhooks_types.go +++ /dev/null @@ -1,14 +0,0 @@ -package v1beta1 - -// +kubebuilder:object:generate=true -type WebhooksSpec struct { - ImageHolder `json:",inline"` - // +optional - Debug bool `json:"debug,omitempty"` - // +optional - Scaling ScalingSpec `json:"scaling,omitempty"` - // +optional - Ingress *IngressConfig `json:"ingress"` - // +optional - MongoDB MongoDBConfig `json:"mongoDB"` -} diff --git a/components/operator/api/stack.formance.com/v1beta1/zz_generated.deepcopy.go b/components/operator/api/stack.formance.com/v1beta1/zz_generated.deepcopy.go deleted file mode 100644 index d10ea25589..0000000000 --- a/components/operator/api/stack.formance.com/v1beta1/zz_generated.deepcopy.go +++ /dev/null @@ -1,1060 +0,0 @@ -//go:build !ignore_autogenerated - -/* -Copyright 2023. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by controller-gen. DO NOT EDIT. - -package v1beta1 - -import ( - "k8s.io/api/autoscaling/v2" - "k8s.io/api/core/v1" - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuthConfigSpec) DeepCopyInto(out *AuthConfigSpec) { - *out = *in - if in.OAuth2 != nil { - in, out := &in.OAuth2, &out.OAuth2 - *out = new(OAuth2ConfigSpec) - (*in).DeepCopyInto(*out) - } - if in.HTTPBasic != nil { - in, out := &in.HTTPBasic, &out.HTTPBasic - *out = new(HTTPBasicConfigSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthConfigSpec. -func (in *AuthConfigSpec) DeepCopy() *AuthConfigSpec { - if in == nil { - return nil - } - out := new(AuthConfigSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuthSpec) DeepCopyInto(out *AuthSpec) { - *out = *in - in.ImageHolder.DeepCopyInto(&out.ImageHolder) - in.Postgres.DeepCopyInto(&out.Postgres) - if in.DelegatedOIDCServer != nil { - in, out := &in.DelegatedOIDCServer, &out.DelegatedOIDCServer - *out = new(DelegatedOIDCServerConfiguration) - **out = **in - } - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressConfig) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthSpec. -func (in *AuthSpec) DeepCopy() *AuthSpec { - if in == nil { - return nil - } - out := new(AuthSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CommonServiceProperties) DeepCopyInto(out *CommonServiceProperties) { - *out = *in - out.DevProperties = in.DevProperties -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonServiceProperties. -func (in *CommonServiceProperties) DeepCopy() *CommonServiceProperties { - if in == nil { - return nil - } - out := new(CommonServiceProperties) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Condition) DeepCopyInto(out *Condition) { - *out = *in - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition. -func (in *Condition) DeepCopy() *Condition { - if in == nil { - return nil - } - out := new(Condition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in Conditions) DeepCopyInto(out *Conditions) { - { - in := &in - *out = make(Conditions, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Conditions. -func (in Conditions) DeepCopy() Conditions { - if in == nil { - return nil - } - out := new(Conditions) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigSource) DeepCopyInto(out *ConfigSource) { - *out = *in - if in.ConfigMapKeyRef != nil { - in, out := &in.ConfigMapKeyRef, &out.ConfigMapKeyRef - *out = new(v1.ConfigMapKeySelector) - (*in).DeepCopyInto(*out) - } - if in.SecretKeyRef != nil { - in, out := &in.SecretKeyRef, &out.SecretKeyRef - *out = new(v1.SecretKeySelector) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigSource. -func (in *ConfigSource) DeepCopy() *ConfigSource { - if in == nil { - return nil - } - out := new(ConfigSource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Configuration) DeepCopyInto(out *Configuration) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Configuration. -func (in *Configuration) DeepCopy() *Configuration { - if in == nil { - return nil - } - out := new(Configuration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Configuration) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigurationList) DeepCopyInto(out *ConfigurationList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Configuration, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationList. -func (in *ConfigurationList) DeepCopy() *ConfigurationList { - if in == nil { - return nil - } - out := new(ConfigurationList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ConfigurationList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigurationSpec) DeepCopyInto(out *ConfigurationSpec) { - *out = *in - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } - in.Services.DeepCopyInto(&out.Services) - if in.Auth != nil { - in, out := &in.Auth, &out.Auth - *out = new(AuthSpec) - (*in).DeepCopyInto(*out) - } - in.Ingress.DeepCopyInto(&out.Ingress) - if in.Kafka != nil { - in, out := &in.Kafka, &out.Kafka - *out = new(KafkaConfig) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationSpec. -func (in *ConfigurationSpec) DeepCopy() *ConfigurationSpec { - if in == nil { - return nil - } - out := new(ConfigurationSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ControlAuthentication) DeepCopyInto(out *ControlAuthentication) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlAuthentication. -func (in *ControlAuthentication) DeepCopy() *ControlAuthentication { - if in == nil { - return nil - } - out := new(ControlAuthentication) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ControlSpec) DeepCopyInto(out *ControlSpec) { - *out = *in - in.ImageHolder.DeepCopyInto(&out.ImageHolder) - out.Scaling = in.Scaling - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressConfig) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlSpec. -func (in *ControlSpec) DeepCopy() *ControlSpec { - if in == nil { - return nil - } - out := new(ControlSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DatabaseSpec) DeepCopyInto(out *DatabaseSpec) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseSpec. -func (in *DatabaseSpec) DeepCopy() *DatabaseSpec { - if in == nil { - return nil - } - out := new(DatabaseSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DelegatedOIDCServerConfiguration) DeepCopyInto(out *DelegatedOIDCServerConfiguration) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DelegatedOIDCServerConfiguration. -func (in *DelegatedOIDCServerConfiguration) DeepCopy() *DelegatedOIDCServerConfiguration { - if in == nil { - return nil - } - out := new(DelegatedOIDCServerConfiguration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DevProperties) DeepCopyInto(out *DevProperties) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DevProperties. -func (in *DevProperties) DeepCopy() *DevProperties { - if in == nil { - return nil - } - out := new(DevProperties) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HTTPBasicConfigSpec) DeepCopyInto(out *HTTPBasicConfigSpec) { - *out = *in - if in.Credentials != nil { - in, out := &in.Credentials, &out.Credentials - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPBasicConfigSpec. -func (in *HTTPBasicConfigSpec) DeepCopy() *HTTPBasicConfigSpec { - if in == nil { - return nil - } - out := new(HTTPBasicConfigSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ImageHolder) DeepCopyInto(out *ImageHolder) { - *out = *in - if in.ImagePullSecrets != nil { - in, out := &in.ImagePullSecrets, &out.ImagePullSecrets - *out = make([]v1.LocalObjectReference, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageHolder. -func (in *ImageHolder) DeepCopy() *ImageHolder { - if in == nil { - return nil - } - out := new(ImageHolder) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IngressConfig) DeepCopyInto(out *IngressConfig) { - *out = *in - if in.Enabled != nil { - in, out := &in.Enabled, &out.Enabled - *out = new(bool) - **out = **in - } - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressConfig. -func (in *IngressConfig) DeepCopy() *IngressConfig { - if in == nil { - return nil - } - out := new(IngressConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IngressGlobalConfig) DeepCopyInto(out *IngressGlobalConfig) { - *out = *in - if in.TLS != nil { - in, out := &in.TLS, &out.TLS - *out = new(IngressTLS) - **out = **in - } - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressGlobalConfig. -func (in *IngressGlobalConfig) DeepCopy() *IngressGlobalConfig { - if in == nil { - return nil - } - out := new(IngressGlobalConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IngressSpec) DeepCopyInto(out *IngressSpec) { - *out = *in - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.TLS != nil { - in, out := &in.TLS, &out.TLS - *out = new(IngressTLS) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec. -func (in *IngressSpec) DeepCopy() *IngressSpec { - if in == nil { - return nil - } - out := new(IngressSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IngressTLS) DeepCopyInto(out *IngressTLS) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressTLS. -func (in *IngressTLS) DeepCopy() *IngressTLS { - if in == nil { - return nil - } - out := new(IngressTLS) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KafkaConfig) DeepCopyInto(out *KafkaConfig) { - *out = *in - if in.Brokers != nil { - in, out := &in.Brokers, &out.Brokers - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.SASL != nil { - in, out := &in.SASL, &out.SASL - *out = new(KafkaSASLConfig) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KafkaConfig. -func (in *KafkaConfig) DeepCopy() *KafkaConfig { - if in == nil { - return nil - } - out := new(KafkaConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KafkaSASLConfig) DeepCopyInto(out *KafkaSASLConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KafkaSASLConfig. -func (in *KafkaSASLConfig) DeepCopy() *KafkaSASLConfig { - if in == nil { - return nil - } - out := new(KafkaSASLConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LedgerSpec) DeepCopyInto(out *LedgerSpec) { - *out = *in - in.ImageHolder.DeepCopyInto(&out.ImageHolder) - in.Scalable.DeepCopyInto(&out.Scalable) - in.Postgres.DeepCopyInto(&out.Postgres) - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressConfig) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LedgerSpec. -func (in *LedgerSpec) DeepCopy() *LedgerSpec { - if in == nil { - return nil - } - out := new(LedgerSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *License) DeepCopyInto(out *License) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec - out.Status = in.Status -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new License. -func (in *License) DeepCopy() *License { - if in == nil { - return nil - } - out := new(License) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *License) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LicenseList) DeepCopyInto(out *LicenseList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]License, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LicenseList. -func (in *LicenseList) DeepCopy() *LicenseList { - if in == nil { - return nil - } - out := new(LicenseList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *LicenseList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LicenseSpec) DeepCopyInto(out *LicenseSpec) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LicenseSpec. -func (in *LicenseSpec) DeepCopy() *LicenseSpec { - if in == nil { - return nil - } - out := new(LicenseSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LicenseStatus) DeepCopyInto(out *LicenseStatus) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LicenseStatus. -func (in *LicenseStatus) DeepCopy() *LicenseStatus { - if in == nil { - return nil - } - out := new(LicenseStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MongoDBConfig) DeepCopyInto(out *MongoDBConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MongoDBConfig. -func (in *MongoDBConfig) DeepCopy() *MongoDBConfig { - if in == nil { - return nil - } - out := new(MongoDBConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitoringSpec) DeepCopyInto(out *MonitoringSpec) { - *out = *in - if in.Traces != nil { - in, out := &in.Traces, &out.Traces - *out = new(TracesSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitoringSpec. -func (in *MonitoringSpec) DeepCopy() *MonitoringSpec { - if in == nil { - return nil - } - out := new(MonitoringSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OAuth2ConfigSpec) DeepCopyInto(out *OAuth2ConfigSpec) { - *out = *in - if in.Audiences != nil { - in, out := &in.Audiences, &out.Audiences - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuth2ConfigSpec. -func (in *OAuth2ConfigSpec) DeepCopy() *OAuth2ConfigSpec { - if in == nil { - return nil - } - out := new(OAuth2ConfigSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PaymentsSpec) DeepCopyInto(out *PaymentsSpec) { - *out = *in - in.ImageHolder.DeepCopyInto(&out.ImageHolder) - out.Scaling = in.Scaling - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressConfig) - (*in).DeepCopyInto(*out) - } - out.MongoDB = in.MongoDB -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PaymentsSpec. -func (in *PaymentsSpec) DeepCopy() *PaymentsSpec { - if in == nil { - return nil - } - out := new(PaymentsSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PostgresConfig) DeepCopyInto(out *PostgresConfig) { - *out = *in - if in.PortFrom != nil { - in, out := &in.PortFrom, &out.PortFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.HostFrom != nil { - in, out := &in.HostFrom, &out.HostFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.UsernameFrom != nil { - in, out := &in.UsernameFrom, &out.UsernameFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } - if in.PasswordFrom != nil { - in, out := &in.PasswordFrom, &out.PasswordFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresConfig. -func (in *PostgresConfig) DeepCopy() *PostgresConfig { - if in == nil { - return nil - } - out := new(PostgresConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PostgresConfigWithDatabase) DeepCopyInto(out *PostgresConfigWithDatabase) { - *out = *in - in.PostgresConfig.DeepCopyInto(&out.PostgresConfig) - if in.DatabaseFrom != nil { - in, out := &in.DatabaseFrom, &out.DatabaseFrom - *out = new(ConfigSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresConfigWithDatabase. -func (in *PostgresConfigWithDatabase) DeepCopy() *PostgresConfigWithDatabase { - if in == nil { - return nil - } - out := new(PostgresConfigWithDatabase) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ReplicationStatus) DeepCopyInto(out *ReplicationStatus) { - *out = *in - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationStatus. -func (in *ReplicationStatus) DeepCopy() *ReplicationStatus { - if in == nil { - return nil - } - out := new(ReplicationStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Scalable) DeepCopyInto(out *Scalable) { - *out = *in - if in.Replicas != nil { - in, out := &in.Replicas, &out.Replicas - *out = new(int32) - **out = **in - } - if in.MinReplicas != nil { - in, out := &in.MinReplicas, &out.MinReplicas - *out = new(int32) - **out = **in - } - if in.Metrics != nil { - in, out := &in.Metrics, &out.Metrics - *out = make([]v2.MetricSpec, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scalable. -func (in *Scalable) DeepCopy() *Scalable { - if in == nil { - return nil - } - out := new(Scalable) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ScalingSpec) DeepCopyInto(out *ScalingSpec) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalingSpec. -func (in *ScalingSpec) DeepCopy() *ScalingSpec { - if in == nil { - return nil - } - out := new(ScalingSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SearchSpec) DeepCopyInto(out *SearchSpec) { - *out = *in - in.ImageHolder.DeepCopyInto(&out.ImageHolder) - out.Scaling = in.Scaling - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressConfig) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchSpec. -func (in *SearchSpec) DeepCopy() *SearchSpec { - if in == nil { - return nil - } - out := new(SearchSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ServicesSpec) DeepCopyInto(out *ServicesSpec) { - *out = *in - if in.Control != nil { - in, out := &in.Control, &out.Control - *out = new(ControlSpec) - (*in).DeepCopyInto(*out) - } - if in.Ledger != nil { - in, out := &in.Ledger, &out.Ledger - *out = new(LedgerSpec) - (*in).DeepCopyInto(*out) - } - if in.Payments != nil { - in, out := &in.Payments, &out.Payments - *out = new(PaymentsSpec) - (*in).DeepCopyInto(*out) - } - if in.Search != nil { - in, out := &in.Search, &out.Search - *out = new(SearchSpec) - (*in).DeepCopyInto(*out) - } - if in.Webhooks != nil { - in, out := &in.Webhooks, &out.Webhooks - *out = new(WebhooksSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServicesSpec. -func (in *ServicesSpec) DeepCopy() *ServicesSpec { - if in == nil { - return nil - } - out := new(ServicesSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Stack) DeepCopyInto(out *Stack) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Stack. -func (in *Stack) DeepCopy() *Stack { - if in == nil { - return nil - } - out := new(Stack) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Stack) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StackList) DeepCopyInto(out *StackList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Stack, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackList. -func (in *StackList) DeepCopy() *StackList { - if in == nil { - return nil - } - out := new(StackList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *StackList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StackSpec) DeepCopyInto(out *StackSpec) { - *out = *in - in.ConfigurationSpec.DeepCopyInto(&out.ConfigurationSpec) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackSpec. -func (in *StackSpec) DeepCopy() *StackSpec { - if in == nil { - return nil - } - out := new(StackSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StackStatus) DeepCopyInto(out *StackStatus) { - *out = *in - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackStatus. -func (in *StackStatus) DeepCopy() *StackStatus { - if in == nil { - return nil - } - out := new(StackStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Status) DeepCopyInto(out *Status) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Status. -func (in *Status) DeepCopy() *Status { - if in == nil { - return nil - } - out := new(Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TracesOtlpSpec) DeepCopyInto(out *TracesOtlpSpec) { - *out = *in - if in.EndpointFrom != nil { - in, out := &in.EndpointFrom, &out.EndpointFrom - *out = new(v1.EnvVarSource) - (*in).DeepCopyInto(*out) - } - if in.PortFrom != nil { - in, out := &in.PortFrom, &out.PortFrom - *out = new(v1.EnvVarSource) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracesOtlpSpec. -func (in *TracesOtlpSpec) DeepCopy() *TracesOtlpSpec { - if in == nil { - return nil - } - out := new(TracesOtlpSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TracesSpec) DeepCopyInto(out *TracesSpec) { - *out = *in - if in.Otlp != nil { - in, out := &in.Otlp, &out.Otlp - *out = new(TracesOtlpSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracesSpec. -func (in *TracesSpec) DeepCopy() *TracesSpec { - if in == nil { - return nil - } - out := new(TracesSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WebhooksSpec) DeepCopyInto(out *WebhooksSpec) { - *out = *in - in.ImageHolder.DeepCopyInto(&out.ImageHolder) - out.Scaling = in.Scaling - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressConfig) - (*in).DeepCopyInto(*out) - } - out.MongoDB = in.MongoDB -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhooksSpec. -func (in *WebhooksSpec) DeepCopy() *WebhooksSpec { - if in == nil { - return nil - } - out := new(WebhooksSpec) - in.DeepCopyInto(out) - return out -} diff --git a/components/operator/api/stack.formance.com/v1beta2/auth_types.go b/components/operator/api/stack.formance.com/v1beta2/auth_types.go deleted file mode 100644 index d0d9c3fd2b..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/auth_types.go +++ /dev/null @@ -1,18 +0,0 @@ -package v1beta2 - -import ( - authcomponentsv1beta2 "github.com/formancehq/operator/api/stack.formance.com/auth.components/v1beta2" - componentsv1beta2 "github.com/formancehq/operator/api/stack.formance.com/components/v1beta2" -) - -type AuthSpec struct { - Postgres componentsv1beta2.PostgresConfig `json:"postgres"` - // +optional - Ingress *IngressConfig `json:"ingress"` - // +optional - StaticClients []authcomponentsv1beta2.StaticClient `json:"staticClients"` -} - -func (in AuthSpec) NeedAuthMiddleware() bool { - return false -} diff --git a/components/operator/api/stack.formance.com/v1beta2/configuration_types.go b/components/operator/api/stack.formance.com/v1beta2/configuration_types.go deleted file mode 100644 index 7c1e2ddf3c..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/configuration_types.go +++ /dev/null @@ -1,139 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - "encoding/json" - - "github.com/formancehq/operator/api/stack.formance.com/components/v1beta2" - "github.com/formancehq/operator/api/stack.formance.com/v1beta3" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "sigs.k8s.io/controller-runtime/pkg/conversion" -) - -type ConfigurationServicesSpec struct { - Auth AuthSpec `json:"auth,omitempty"` - Control ControlSpec `json:"control,omitempty"` - Ledger LedgerSpec `json:"ledger,omitempty"` - Payments PaymentsSpec `json:"payments,omitempty"` - Search SearchSpec `json:"search,omitempty"` - Webhooks WebhooksSpec `json:"webhooks,omitempty"` - Wallets WalletsSpec `json:"wallets,omitempty"` - Orchestration OrchestrationSpec `json:"orchestration,omitempty"` - Counterparties CounterpartiesSpec `json:"counterparties,omitempty"` -} - -type TemporalConfig struct { - Address string `json:"address"` - Namespace string `json:"namespace"` - TLS v1beta2.TemporalTLSConfig `json:"tls"` -} - -type ConfigurationSpec struct { - Services ConfigurationServicesSpec `json:"services"` - Kafka v1beta2.KafkaConfig `json:"kafka"` - // +optional - Monitoring *v1beta2.MonitoringSpec `json:"monitoring,omitempty"` - // +optional - Ingress IngressGlobalConfig `json:"ingress,omitempty"` - Temporal TemporalConfig `json:"temporal"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:resource:scope=Cluster -//+kubebuilder:subresource:status - -// Configuration is the Schema for the configurations API -type Configuration struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec ConfigurationSpec `json:"spec,omitempty"` - Status v1beta2.Status `json:"status,omitempty"` -} - -func (config *Configuration) ConvertFrom(hubRaw conversion.Hub) error { - - hub := hubRaw.(*v1beta3.Configuration) - specAsRaw, err := json.Marshal(hub.Spec) - if err != nil { - return err - } - *config = Configuration{ - ObjectMeta: hub.ObjectMeta, - TypeMeta: hub.TypeMeta, - } - config.APIVersion = GroupVersion.String() - if err := json.Unmarshal(specAsRaw, &config.Spec); err != nil { - return err - } - - if hub.Spec.Broker.Kafka != nil { - kafkaConfigAsJSON, err := json.Marshal(hub.Spec.Broker.Kafka) - if err != nil { - return err - } - cfg := v1beta2.KafkaConfig{} - if err := json.Unmarshal(kafkaConfigAsJSON, &cfg); err != nil { - return err - } - - config.Spec.Kafka = cfg - } - - return nil -} - -func (config *Configuration) ConvertTo(hubRaw conversion.Hub) error { - - hub := hubRaw.(*v1beta3.Configuration) - specAsRaw, err := json.Marshal(config.Spec) - if err != nil { - return err - } - if err := json.Unmarshal(specAsRaw, &hub.Spec); err != nil { - return err - } - hub.ObjectMeta = config.ObjectMeta - hub.TypeMeta = config.TypeMeta - hub.APIVersion = v1beta3.GroupVersion.String() - kafkaSpecAsJSON, err := json.Marshal(config.Spec.Kafka) - if err != nil { - return err - } - cfg := v1beta3.KafkaConfig{} - if err := json.Unmarshal(kafkaSpecAsJSON, &cfg); err != nil { - return err - } - hub.Spec.Broker.Kafka = &cfg - hub.Spec.Services.Payments.EncryptionKey = "default-encryption-key" - - return nil -} - -//+kubebuilder:object:root=true - -// ConfigurationList contains a list of Configuration -type ConfigurationList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Configuration `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Configuration{}, &ConfigurationList{}) -} diff --git a/components/operator/api/stack.formance.com/v1beta2/control_types.go b/components/operator/api/stack.formance.com/v1beta2/control_types.go deleted file mode 100644 index 9826b3a31d..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/control_types.go +++ /dev/null @@ -1,9 +0,0 @@ -package v1beta2 - -// +kubebuilder:object:generate=true -type ControlSpec struct { - // +optional - Scaling ScalingSpec `json:"scaling,omitempty"` - // +optional - Ingress *IngressConfig `json:"ingress"` -} diff --git a/components/operator/api/stack.formance.com/v1beta2/counterparties_types.go b/components/operator/api/stack.formance.com/v1beta2/counterparties_types.go deleted file mode 100644 index 7b9af5ef82..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/counterparties_types.go +++ /dev/null @@ -1,17 +0,0 @@ -package v1beta2 - -import ( - componentsv1beta2 "github.com/formancehq/operator/api/stack.formance.com/components/v1beta2" -) - -// +kubebuilder:object:generate=true -type CounterpartiesSpec struct { - // +optional - Enabled bool `json:"enabled,omitempty"` - // +optional - Debug bool `json:"debug,omitempty"` - // +optional - Scaling ScalingSpec `json:"scaling,omitempty"` - // +optional - Postgres componentsv1beta2.PostgresConfig `json:"postgres"` -} diff --git a/components/operator/api/stack.formance.com/v1beta2/groupversion_info.go b/components/operator/api/stack.formance.com/v1beta2/groupversion_info.go deleted file mode 100644 index 0af46bbd4a..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/groupversion_info.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1beta2 contains API Schema definitions for the stack v1beta2 API group -// +kubebuilder:object:generate=true -// +groupName=stack.formance.com -package v1beta2 - -import ( - "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" -) - -var ( - // GroupVersion is group version used to register these objects - GroupVersion = schema.GroupVersion{Group: "stack.formance.com", Version: "v1beta2"} - - // SchemeBuilder is used to add go types to the GroupVersionKind scheme - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} - - // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme -) diff --git a/components/operator/api/stack.formance.com/v1beta2/ledger_types.go b/components/operator/api/stack.formance.com/v1beta2/ledger_types.go deleted file mode 100644 index 9b239dc28a..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/ledger_types.go +++ /dev/null @@ -1,15 +0,0 @@ -package v1beta2 - -import ( - componentsv1beta2 "github.com/formancehq/operator/api/stack.formance.com/components/v1beta2" -) - -// +kubebuilder:object:generate=true -type LedgerSpec struct { - componentsv1beta2.Scalable `json:",inline"` - Postgres componentsv1beta2.PostgresConfig `json:"postgres"` - // +optional - LockingStrategy componentsv1beta2.LockingStrategy `json:"locking"` - // +optional - Ingress *IngressConfig `json:"ingress"` -} diff --git a/components/operator/api/stack.formance.com/v1beta2/orchestration_types.go b/components/operator/api/stack.formance.com/v1beta2/orchestration_types.go deleted file mode 100644 index 49492ce756..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/orchestration_types.go +++ /dev/null @@ -1,16 +0,0 @@ -package v1beta2 - -import ( - componentsv1beta2 "github.com/formancehq/operator/api/stack.formance.com/components/v1beta2" -) - -// +kubebuilder:object:generate=true -type OrchestrationSpec struct { - componentsv1beta2.DevProperties `json:",inline"` - // +optional - Scaling ScalingSpec `json:"scaling,omitempty"` - // +optional - Ingress *IngressConfig `json:"ingress"` - // +optional - Postgres componentsv1beta2.PostgresConfig `json:"postgres"` -} diff --git a/components/operator/api/stack.formance.com/v1beta2/payments_types.go b/components/operator/api/stack.formance.com/v1beta2/payments_types.go deleted file mode 100644 index 450624455a..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/payments_types.go +++ /dev/null @@ -1,15 +0,0 @@ -package v1beta2 - -import ( - componentsv1beta2 "github.com/formancehq/operator/api/stack.formance.com/components/v1beta2" -) - -// +kubebuilder:object:generate=true -type PaymentsSpec struct { - // +optional - Scaling ScalingSpec `json:"scaling,omitempty"` - // +optional - Ingress *IngressConfig `json:"ingress"` - // +optional - Postgres componentsv1beta2.PostgresConfig `json:"postgres"` -} diff --git a/components/operator/api/stack.formance.com/v1beta2/search_types.go b/components/operator/api/stack.formance.com/v1beta2/search_types.go deleted file mode 100644 index 7ad645ed68..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/search_types.go +++ /dev/null @@ -1,19 +0,0 @@ -package v1beta2 - -import ( - componentsv1beta2 "github.com/formancehq/operator/api/stack.formance.com/components/v1beta2" -) - -// +kubebuilder:object:generate=true -type SearchSpec struct { - ElasticSearchConfig componentsv1beta2.ElasticSearchConfig `json:"elasticSearch"` - - // +optional - Scaling ScalingSpec `json:"scaling,omitempty"` - - //+optional - Ingress *IngressConfig `json:"ingress"` - - // +optional - Batching componentsv1beta2.Batching `json:"batching"` -} diff --git a/components/operator/api/stack.formance.com/v1beta2/shared_types.go b/components/operator/api/stack.formance.com/v1beta2/shared_types.go deleted file mode 100644 index 8417702639..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/shared_types.go +++ /dev/null @@ -1,24 +0,0 @@ -package v1beta2 - -type ScalingSpec struct { - // +optional - Enabled bool `json:"enabled,omitempty"` - // +optional - MinReplica int `json:"minReplica,omitempty"` - // +optional - MaxReplica int `json:"maxReplica,omitempty"` - // +optional - CpuLimit int `json:"cpuLimit,omitempty"` -} - -type DatabaseSpec struct { - // +optional - Url string `json:"url,omitempty"` - // +optional - Type string `json:"type,omitempty"` -} - -type IngressConfig struct { - // +optional - Annotations map[string]string `json:"annotations"` -} diff --git a/components/operator/api/stack.formance.com/v1beta2/stack_types.go b/components/operator/api/stack.formance.com/v1beta2/stack_types.go deleted file mode 100644 index 189e53df97..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/stack_types.go +++ /dev/null @@ -1,127 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - "encoding/json" - - authcomponentsv1beta2 "github.com/formancehq/operator/api/stack.formance.com/auth.components/v1beta2" - "github.com/formancehq/operator/api/stack.formance.com/components/v1beta2" - "github.com/formancehq/operator/api/stack.formance.com/v1beta3" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "sigs.k8s.io/controller-runtime/pkg/conversion" -) - -type IngressGlobalConfig struct { - IngressConfig `json:",inline"` - // +optional - TLS *v1beta2.IngressTLS `json:"tls"` -} - -type StackAuthSpec struct { - DelegatedOIDCServer v1beta2.DelegatedOIDCServerConfiguration `json:"delegatedOIDCServer"` - // +optional - StaticClients []authcomponentsv1beta2.StaticClient `json:"staticClients,omitempty"` -} - -// StackSpec defines the desired state of Stack -type StackSpec struct { - v1beta2.DevProperties `json:",inline"` - Seed string `json:"seed"` - Host string `json:"host"` - Auth StackAuthSpec `json:"auth"` - - // +optional - Versions string `json:"versions"` - - // +optional - // +kubebuilder:default:="http" - Scheme string `json:"scheme"` -} - -type ControlAuthentication struct { - ClientID string -} - -type StackStatus struct { - v1beta2.Status `json:",inline"` - - // +optional - StaticAuthClients map[string]authcomponentsv1beta2.StaticClient `json:"staticAuthClients,omitempty"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:resource:scope=Cluster -//+kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.progress` -//+kubebuilder:printcolumn:name="Version",type="string",JSONPath=".spec.versions",description="Stack Version" -//+kubebuilder:printcolumn:name="Configuration",type="string",JSONPath=".spec.seed",description="Stack Configuration" - -// Stack is the Schema for the stacks API -type Stack struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec StackSpec `json:"spec,omitempty"` - Status StackStatus `json:"status,omitempty"` -} - -func (stack *Stack) ConvertFrom(hubRaw conversion.Hub) error { - hub := hubRaw.(*v1beta3.Stack) - specAsRaw, err := json.Marshal(hub.Spec) - if err != nil { - return err - } - *stack = Stack{ - ObjectMeta: hub.ObjectMeta, - TypeMeta: hub.TypeMeta, - } - stack.APIVersion = GroupVersion.String() - if err := json.Unmarshal(specAsRaw, &stack.Spec); err != nil { - return err - } - return nil -} - -func (stack *Stack) ConvertTo(hubRaw conversion.Hub) error { - hub := hubRaw.(*v1beta3.Stack) - specAsRaw, err := json.Marshal(stack.Spec) - hub.ObjectMeta = stack.ObjectMeta - hub.TypeMeta = stack.TypeMeta - hub.TypeMeta.APIVersion = v1beta3.GroupVersion.String() - if err != nil { - return err - } - if err := json.Unmarshal(specAsRaw, &hub.Spec); err != nil { - return err - } - - return nil -} - -//+kubebuilder:object:root=true - -// StackList contains a list of Stack -type StackList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Stack `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Stack{}, &StackList{}) -} diff --git a/components/operator/api/stack.formance.com/v1beta2/stack_webhook.go b/components/operator/api/stack.formance.com/v1beta2/stack_webhook.go deleted file mode 100644 index 1d9cc8d40e..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/stack_webhook.go +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - ctrl "sigs.k8s.io/controller-runtime" - logf "sigs.k8s.io/controller-runtime/pkg/log" - "sigs.k8s.io/controller-runtime/pkg/webhook" -) - -const ( - DefaultVersions = "default" -) - -var _ webhook.Defaulter = &Stack{} - -// log is for logging in this package. -// -//nolint:unused -var stacklog = logf.Log.WithName("stack-resource") - -//+kubebuilder:webhook:path=/mutate-stack-formance-com-v1beta2-stack,mutating=true,failurePolicy=fail,sideEffects=None,groups=stack.formance.com,resources=stacks,verbs=create;update,versions=v1beta2,name=mstacks-v1beta2.kb.io,admissionReviewVersions=v1 - -func (stack *Stack) SetupWebhookWithManager(mgr ctrl.Manager) error { - return ctrl.NewWebhookManagedBy(mgr). - For(stack). - Complete() -} - -func (stack *Stack) Default() { - if stack.Spec.Versions == "" { - stack.Spec.Versions = DefaultVersions - } -} diff --git a/components/operator/api/stack.formance.com/v1beta2/versions_types.go b/components/operator/api/stack.formance.com/v1beta2/versions_types.go deleted file mode 100644 index 4d76409f57..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/versions_types.go +++ /dev/null @@ -1,84 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta2 - -import ( - "reflect" - - "github.com/iancoleman/strcase" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// VersionsSpec defines the desired state of Versions -type VersionsSpec struct { - // +optional - Control string `json:"control"` - // +optional - Ledger string `json:"ledger"` - // +optional - Payments string `json:"payments"` - // +optional - Search string `json:"search"` - // +optional - Auth string `json:"auth"` - // +optional - Webhooks string `json:"webhooks"` - // +optional - Wallets string `json:"wallets"` - // +optional - Orchestration string `json:"orchestration"` - // +optional - Counterparties string `json:"counterparties"` -} - -// VersionsStatus defines the observed state of Versions -type VersionsStatus struct { -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:resource:scope=Cluster - -// Versions is the Schema for the versions API -type Versions struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec VersionsSpec `json:"spec,omitempty"` - Status VersionsStatus `json:"status,omitempty"` -} - -func (in *Versions) GetFromServiceName(s string) string { - fieldByName := reflect.ValueOf(in.Spec).FieldByName(strcase.ToCamel(s)) - if fieldByName.String() == "" { - return "latest" - } - return fieldByName.String() -} - -//+kubebuilder:object:root=true - -// VersionsList contains a list of Versions -type VersionsList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Versions `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Versions{}, &VersionsList{}) -} diff --git a/components/operator/api/stack.formance.com/v1beta2/wallets_types.go b/components/operator/api/stack.formance.com/v1beta2/wallets_types.go deleted file mode 100644 index dfd6dc1e82..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/wallets_types.go +++ /dev/null @@ -1,14 +0,0 @@ -package v1beta2 - -import ( - componentsv1beta2 "github.com/formancehq/operator/api/stack.formance.com/components/v1beta2" -) - -// +kubebuilder:object:generate=true -type WalletsSpec struct { - componentsv1beta2.DevProperties `json:",inline"` - // +optional - Scaling ScalingSpec `json:"scaling,omitempty"` - // +optional - Ingress *IngressConfig `json:"ingress"` -} diff --git a/components/operator/api/stack.formance.com/v1beta2/webhooks_types.go b/components/operator/api/stack.formance.com/v1beta2/webhooks_types.go deleted file mode 100644 index a41c890064..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/webhooks_types.go +++ /dev/null @@ -1,17 +0,0 @@ -package v1beta2 - -import ( - componentsv1beta2 "github.com/formancehq/operator/api/stack.formance.com/components/v1beta2" -) - -// +kubebuilder:object:generate=true -type WebhooksSpec struct { - // +optional - Debug bool `json:"debug,omitempty"` - // +optional - Scaling ScalingSpec `json:"scaling,omitempty"` - // +optional - Ingress *IngressConfig `json:"ingress"` - // +optional - Postgres componentsv1beta2.PostgresConfig `json:"postgres"` -} diff --git a/components/operator/api/stack.formance.com/v1beta2/zz_generated.deepcopy.go b/components/operator/api/stack.formance.com/v1beta2/zz_generated.deepcopy.go deleted file mode 100644 index 4c02f907f4..0000000000 --- a/components/operator/api/stack.formance.com/v1beta2/zz_generated.deepcopy.go +++ /dev/null @@ -1,650 +0,0 @@ -//go:build !ignore_autogenerated - -/* -Copyright 2023. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by controller-gen. DO NOT EDIT. - -package v1beta2 - -import ( - auth_componentsv1beta2 "github.com/formancehq/operator/api/stack.formance.com/auth.components/v1beta2" - componentsv1beta2 "github.com/formancehq/operator/api/stack.formance.com/components/v1beta2" - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuthSpec) DeepCopyInto(out *AuthSpec) { - *out = *in - in.Postgres.DeepCopyInto(&out.Postgres) - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressConfig) - (*in).DeepCopyInto(*out) - } - if in.StaticClients != nil { - in, out := &in.StaticClients, &out.StaticClients - *out = make([]auth_componentsv1beta2.StaticClient, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthSpec. -func (in *AuthSpec) DeepCopy() *AuthSpec { - if in == nil { - return nil - } - out := new(AuthSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Configuration) DeepCopyInto(out *Configuration) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Configuration. -func (in *Configuration) DeepCopy() *Configuration { - if in == nil { - return nil - } - out := new(Configuration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Configuration) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigurationList) DeepCopyInto(out *ConfigurationList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Configuration, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationList. -func (in *ConfigurationList) DeepCopy() *ConfigurationList { - if in == nil { - return nil - } - out := new(ConfigurationList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ConfigurationList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigurationServicesSpec) DeepCopyInto(out *ConfigurationServicesSpec) { - *out = *in - in.Auth.DeepCopyInto(&out.Auth) - in.Control.DeepCopyInto(&out.Control) - in.Ledger.DeepCopyInto(&out.Ledger) - in.Payments.DeepCopyInto(&out.Payments) - in.Search.DeepCopyInto(&out.Search) - in.Webhooks.DeepCopyInto(&out.Webhooks) - in.Wallets.DeepCopyInto(&out.Wallets) - in.Orchestration.DeepCopyInto(&out.Orchestration) - in.Counterparties.DeepCopyInto(&out.Counterparties) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationServicesSpec. -func (in *ConfigurationServicesSpec) DeepCopy() *ConfigurationServicesSpec { - if in == nil { - return nil - } - out := new(ConfigurationServicesSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigurationSpec) DeepCopyInto(out *ConfigurationSpec) { - *out = *in - in.Services.DeepCopyInto(&out.Services) - in.Kafka.DeepCopyInto(&out.Kafka) - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(componentsv1beta2.MonitoringSpec) - (*in).DeepCopyInto(*out) - } - in.Ingress.DeepCopyInto(&out.Ingress) - out.Temporal = in.Temporal -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationSpec. -func (in *ConfigurationSpec) DeepCopy() *ConfigurationSpec { - if in == nil { - return nil - } - out := new(ConfigurationSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ControlAuthentication) DeepCopyInto(out *ControlAuthentication) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlAuthentication. -func (in *ControlAuthentication) DeepCopy() *ControlAuthentication { - if in == nil { - return nil - } - out := new(ControlAuthentication) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ControlSpec) DeepCopyInto(out *ControlSpec) { - *out = *in - out.Scaling = in.Scaling - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressConfig) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlSpec. -func (in *ControlSpec) DeepCopy() *ControlSpec { - if in == nil { - return nil - } - out := new(ControlSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CounterpartiesSpec) DeepCopyInto(out *CounterpartiesSpec) { - *out = *in - out.Scaling = in.Scaling - in.Postgres.DeepCopyInto(&out.Postgres) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CounterpartiesSpec. -func (in *CounterpartiesSpec) DeepCopy() *CounterpartiesSpec { - if in == nil { - return nil - } - out := new(CounterpartiesSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DatabaseSpec) DeepCopyInto(out *DatabaseSpec) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseSpec. -func (in *DatabaseSpec) DeepCopy() *DatabaseSpec { - if in == nil { - return nil - } - out := new(DatabaseSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IngressConfig) DeepCopyInto(out *IngressConfig) { - *out = *in - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressConfig. -func (in *IngressConfig) DeepCopy() *IngressConfig { - if in == nil { - return nil - } - out := new(IngressConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IngressGlobalConfig) DeepCopyInto(out *IngressGlobalConfig) { - *out = *in - in.IngressConfig.DeepCopyInto(&out.IngressConfig) - if in.TLS != nil { - in, out := &in.TLS, &out.TLS - *out = new(componentsv1beta2.IngressTLS) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressGlobalConfig. -func (in *IngressGlobalConfig) DeepCopy() *IngressGlobalConfig { - if in == nil { - return nil - } - out := new(IngressGlobalConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LedgerSpec) DeepCopyInto(out *LedgerSpec) { - *out = *in - in.Scalable.DeepCopyInto(&out.Scalable) - in.Postgres.DeepCopyInto(&out.Postgres) - in.LockingStrategy.DeepCopyInto(&out.LockingStrategy) - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressConfig) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LedgerSpec. -func (in *LedgerSpec) DeepCopy() *LedgerSpec { - if in == nil { - return nil - } - out := new(LedgerSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OrchestrationSpec) DeepCopyInto(out *OrchestrationSpec) { - *out = *in - out.DevProperties = in.DevProperties - out.Scaling = in.Scaling - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressConfig) - (*in).DeepCopyInto(*out) - } - in.Postgres.DeepCopyInto(&out.Postgres) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrchestrationSpec. -func (in *OrchestrationSpec) DeepCopy() *OrchestrationSpec { - if in == nil { - return nil - } - out := new(OrchestrationSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PaymentsSpec) DeepCopyInto(out *PaymentsSpec) { - *out = *in - out.Scaling = in.Scaling - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressConfig) - (*in).DeepCopyInto(*out) - } - in.Postgres.DeepCopyInto(&out.Postgres) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PaymentsSpec. -func (in *PaymentsSpec) DeepCopy() *PaymentsSpec { - if in == nil { - return nil - } - out := new(PaymentsSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ScalingSpec) DeepCopyInto(out *ScalingSpec) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalingSpec. -func (in *ScalingSpec) DeepCopy() *ScalingSpec { - if in == nil { - return nil - } - out := new(ScalingSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SearchSpec) DeepCopyInto(out *SearchSpec) { - *out = *in - in.ElasticSearchConfig.DeepCopyInto(&out.ElasticSearchConfig) - out.Scaling = in.Scaling - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressConfig) - (*in).DeepCopyInto(*out) - } - out.Batching = in.Batching -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchSpec. -func (in *SearchSpec) DeepCopy() *SearchSpec { - if in == nil { - return nil - } - out := new(SearchSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Stack) DeepCopyInto(out *Stack) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Stack. -func (in *Stack) DeepCopy() *Stack { - if in == nil { - return nil - } - out := new(Stack) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Stack) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StackAuthSpec) DeepCopyInto(out *StackAuthSpec) { - *out = *in - in.DelegatedOIDCServer.DeepCopyInto(&out.DelegatedOIDCServer) - if in.StaticClients != nil { - in, out := &in.StaticClients, &out.StaticClients - *out = make([]auth_componentsv1beta2.StaticClient, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackAuthSpec. -func (in *StackAuthSpec) DeepCopy() *StackAuthSpec { - if in == nil { - return nil - } - out := new(StackAuthSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StackList) DeepCopyInto(out *StackList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Stack, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackList. -func (in *StackList) DeepCopy() *StackList { - if in == nil { - return nil - } - out := new(StackList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *StackList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StackSpec) DeepCopyInto(out *StackSpec) { - *out = *in - out.DevProperties = in.DevProperties - in.Auth.DeepCopyInto(&out.Auth) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackSpec. -func (in *StackSpec) DeepCopy() *StackSpec { - if in == nil { - return nil - } - out := new(StackSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StackStatus) DeepCopyInto(out *StackStatus) { - *out = *in - in.Status.DeepCopyInto(&out.Status) - if in.StaticAuthClients != nil { - in, out := &in.StaticAuthClients, &out.StaticAuthClients - *out = make(map[string]auth_componentsv1beta2.StaticClient, len(*in)) - for key, val := range *in { - (*out)[key] = *val.DeepCopy() - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackStatus. -func (in *StackStatus) DeepCopy() *StackStatus { - if in == nil { - return nil - } - out := new(StackStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TemporalConfig) DeepCopyInto(out *TemporalConfig) { - *out = *in - out.TLS = in.TLS -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalConfig. -func (in *TemporalConfig) DeepCopy() *TemporalConfig { - if in == nil { - return nil - } - out := new(TemporalConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Versions) DeepCopyInto(out *Versions) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec - out.Status = in.Status -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Versions. -func (in *Versions) DeepCopy() *Versions { - if in == nil { - return nil - } - out := new(Versions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Versions) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VersionsList) DeepCopyInto(out *VersionsList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Versions, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionsList. -func (in *VersionsList) DeepCopy() *VersionsList { - if in == nil { - return nil - } - out := new(VersionsList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *VersionsList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VersionsSpec) DeepCopyInto(out *VersionsSpec) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionsSpec. -func (in *VersionsSpec) DeepCopy() *VersionsSpec { - if in == nil { - return nil - } - out := new(VersionsSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VersionsStatus) DeepCopyInto(out *VersionsStatus) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionsStatus. -func (in *VersionsStatus) DeepCopy() *VersionsStatus { - if in == nil { - return nil - } - out := new(VersionsStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WalletsSpec) DeepCopyInto(out *WalletsSpec) { - *out = *in - out.DevProperties = in.DevProperties - out.Scaling = in.Scaling - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressConfig) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WalletsSpec. -func (in *WalletsSpec) DeepCopy() *WalletsSpec { - if in == nil { - return nil - } - out := new(WalletsSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WebhooksSpec) DeepCopyInto(out *WebhooksSpec) { - *out = *in - out.Scaling = in.Scaling - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = new(IngressConfig) - (*in).DeepCopyInto(*out) - } - in.Postgres.DeepCopyInto(&out.Postgres) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhooksSpec. -func (in *WebhooksSpec) DeepCopy() *WebhooksSpec { - if in == nil { - return nil - } - out := new(WebhooksSpec) - in.DeepCopyInto(out) - return out -} diff --git a/components/operator/api/stack.formance.com/v1beta3/auth.go b/components/operator/api/stack.formance.com/v1beta3/auth.go deleted file mode 100644 index 41fea2d20d..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/auth.go +++ /dev/null @@ -1,8 +0,0 @@ -package v1beta3 - -type AuthConfig struct { - // +optional - ReadKeySetMaxRetries int `json:"readKeySetMaxRetries"` - // +optional - CheckScopes bool `json:"checkScopes"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/auth_types.go b/components/operator/api/stack.formance.com/v1beta3/auth_types.go deleted file mode 100644 index cbde2fd500..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/auth_types.go +++ /dev/null @@ -1,13 +0,0 @@ -package v1beta3 - -type AuthSpec struct { - Postgres PostgresConfig `json:"postgres"` - // +optional - StaticClients []StaticClient `json:"staticClients,omitempty"` - - // +optional - DevProperties `json:",inline"` - // +optional - ResourceProperties *ResourceProperties `json:"resourceProperties,omitempty"` - Annotations AnnotationsServicesSpec `json:"annotations,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/broker.go b/components/operator/api/stack.formance.com/v1beta3/broker.go deleted file mode 100644 index d703781d05..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/broker.go +++ /dev/null @@ -1,23 +0,0 @@ -package v1beta3 - -type KafkaSASLConfig struct { - Username string `json:"username,omitempty"` - Password string `json:"password,omitempty"` - Mechanism string `json:"mechanism"` - ScramSHASize string `json:"scramSHASize"` -} - -type KafkaConfig struct { - Brokers []string `json:"brokers"` - // +optional - TLS bool `json:"tls"` - // +optional - SASL *KafkaSASLConfig `json:"sasl,omitempty"` -} - -type NatsConfig struct { - URL string `json:"url"` - // +kubebuilder:default:=3 - // +optional - Replicas int `json:"replicas"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/common.go b/components/operator/api/stack.formance.com/v1beta3/common.go deleted file mode 100644 index 5249b6814e..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/common.go +++ /dev/null @@ -1,26 +0,0 @@ -package v1beta3 - -type DevProperties struct { - // +optional - Debug bool `json:"debug"` - // +optional - Dev bool `json:"dev"` -} - -type Resource struct { - Cpu string `json:"cpu,omitempty"` - Memory string `json:"memory,omitempty"` -} - -type ResourceProperties struct { - // +optional - Request *Resource `json:"request,omitempty"` - // +optional - Limits *Resource `json:"limits,omitempty"` -} - -type CommonServiceProperties struct { - DevProperties `json:",inline"` - // +optional - Disabled *bool `json:"disabled,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/condition.go b/components/operator/api/stack.formance.com/v1beta3/condition.go deleted file mode 100644 index e473443d71..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/condition.go +++ /dev/null @@ -1,50 +0,0 @@ -package v1beta3 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type Condition struct { - // type of condition in CamelCase or in foo.example.com/CamelCase. - // --- - // Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - // useful (see .node.status.conditions), the ability to deconflict is important. - // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$` - // +kubebuilder:validation:MaxLength=316 - Type string `json:"type" protobuf:"bytes,1,opt,name=type"` - // status of the condition, one of True, False, Unknown. - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Enum=True;False;Unknown - Status metav1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status"` - // observedGeneration represents the .metadata.generation that the condition was set based upon. - // For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - // with respect to the current state of the instance. - // +kubebuilder:validation:Required - // +kubebuilder:validation:Minimum=0 - ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,3,opt,name=observedGeneration"` - // lastTransitionTime is the last time the condition transitioned from one status to another. - // This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - // +required - // +kubebuilder:validation:Required - // +kubebuilder:validation:Type=string - // +kubebuilder:validation:Format=date-time - LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,4,opt,name=lastTransitionTime"` - // message is a human readable message indicating details about the transition. - // This may be an empty string. - // +required - // +kubebuilder:validation:Optional - // +kubebuilder:validation:MaxLength=32768 - Message string `json:"message,omitempty" protobuf:"bytes,6,opt,name=message"` -} - -type Conditions []Condition - -const ( - ConditionTypeReady = "Ready" - ConditionTypeProgressing = "Progressing" - ConditionTypeError = "Error" -) diff --git a/components/operator/api/stack.formance.com/v1beta3/configuration_types.go b/components/operator/api/stack.formance.com/v1beta3/configuration_types.go deleted file mode 100644 index 785de378ad..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/configuration_types.go +++ /dev/null @@ -1,217 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta3 - -import ( - "fmt" - "reflect" - "strings" - - "github.com/iancoleman/strcase" - - "github.com/pkg/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// ConfigurationServicesSpec define all existing services for a stack. -// Fields order is important. -// For example, auth must be defined later as other services create static auth clients which must be used by auth. -type ConfigurationServicesSpec struct { - Control ControlSpec `json:"control,omitempty"` - Ledger LedgerSpec `json:"ledger,omitempty"` - Payments PaymentsSpec `json:"payments,omitempty"` - Reconciliation ReconciliationSpec `json:"reconciliation,omitempty"` - Webhooks WebhooksSpec `json:"webhooks,omitempty"` - Wallets WalletsSpec `json:"wallets,omitempty"` - Orchestration OrchestrationSpec `json:"orchestration,omitempty"` - Search SearchSpec `json:"search,omitempty"` - Auth AuthSpec `json:"auth,omitempty"` - - // +optional - Gateway GatewaySpec `json:"gateway,omitempty"` - Stargate StargateSpec `json:"stargate,omitempty"` -} - -func (in *ConfigurationServicesSpec) getDisabledProperty(service string) *bool { - valueOf := reflect.ValueOf(in).Elem().FieldByName(strcase.ToCamel(service)) - if valueOf.IsValid() { - _, ok := valueOf.Type().FieldByName("CommonServiceProperties") - if !ok { - return nil - } - commonServiceProperties := valueOf.FieldByName("CommonServiceProperties") - properties := commonServiceProperties.Interface().(CommonServiceProperties) - return properties.Disabled - } - return nil -} - -func (in *ConfigurationServicesSpec) IsExplicitlyDisabled(service string) bool { - disabled := in.getDisabledProperty(service) - return disabled != nil && *disabled -} - -func (in *ConfigurationServicesSpec) IsExplicitlyEnabled(service string) bool { - disabled := in.getDisabledProperty(service) - return disabled != nil && !*disabled -} - -// TODO: Handle validation -type TemporalTLSConfig struct { - // +optional - CRT string `json:"crt"` - // +optional - Key string `json:"key"` - // +optional - SecretName string `json:"secretName"` -} - -type TemporalConfig struct { - Address string `json:"address"` - Namespace string `json:"namespace"` - TLS TemporalTLSConfig `json:"tls,omitempty"` -} - -type CollectorConfig struct { - Broker `json:",inline"` - Topic string `json:"topic"` -} - -type Broker struct { - // +optional - Kafka *KafkaConfig `json:"kafka,omitempty"` - // +optional - Nats *NatsConfig `json:"nats,omitempty"` -} - -type MonitoringSpec struct { - // +optional - Traces *TracesSpec `json:"traces,omitempty"` - // +optional - Metrics *MetricsSpec `json:"metrics,omitempty"` -} - -type AnnotationsServicesSpec struct { - // +optional - Service map[string]string `json:"service,omitempty"` -} - -type OtlpSpec struct { - // +optional - Endpoint string `json:"endpoint,omitempty"` - // +optional - Port int32 `json:"port,omitempty"` - // +optional - Insecure bool `json:"insecure,omitempty"` - // +kubebuilder:validation:Enum:={grpc,http} - // +kubebuilder:validation:default:=grpc - // +optional - Mode string `json:"mode,omitempty"` - // +optional - ResourceAttributes string `json:"resourceAttributes,omitempty"` -} - -type TracesSpec struct { - // +optional - Otlp *OtlpSpec `json:"otlp,omitempty"` -} - -type MetricsSpec struct { - // +optional - Otlp *OtlpSpec `json:"otlp,omitempty"` -} - -type RegistryConfig struct { - Endpoint string `json:"endpoint"` -} - -type ConfigurationSpec struct { - Services ConfigurationServicesSpec `json:"services"` - Broker Broker `json:"broker"` - // +optional - Monitoring *MonitoringSpec `json:"monitoring,omitempty"` - - // +optional - Auth *AuthConfig `json:"auth,omitempty"` - - // +optional - Ingress IngressGlobalConfig `json:"ingress,omitempty"` - Temporal TemporalConfig `json:"temporal"` - // LightMode is experimental and indicate we want monopods - // +optional - LightMode bool `json:"light,omitempty"` - // +optional - Registries map[string]RegistryConfig `json:"registries,omitempty"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:resource:scope=Cluster -//+kubebuilder:subresource:status -//+kubebuilder:storageversion - -// Configuration is the Schema for the configurations API -type Configuration struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec ConfigurationSpec `json:"spec,omitempty"` - Status Status `json:"status,omitempty"` -} - -func (c *Configuration) Default() {} - -func (*Configuration) Hub() {} - -func (c Configuration) Validate() error { - if c.Spec.Broker.Kafka == nil && c.Spec.Broker.Nats == nil { - return errors.New("either 'kafka' or 'nats' is required") - } - return nil -} - -func (c *Configuration) ResolveImage(image string) string { - parts := strings.Split(image, ":") - repository := parts[0] - repositoryParts := strings.SplitN(repository, "/", 2) - var ( - registry, path string - ) - if len(repositoryParts) == 1 { - registry = "docker.io" - path = repository - } else { - registry = repositoryParts[0] - path = repositoryParts[1] - } - if config, ok := c.Spec.Registries[registry]; ok && config.Endpoint != "" { - return fmt.Sprintf("%s/%s:%s", config.Endpoint, path, parts[1]) - } - return image -} - -//+kubebuilder:object:root=true - -// ConfigurationList contains a list of Configuration -type ConfigurationList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Configuration `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Configuration{}, &ConfigurationList{}) -} diff --git a/components/operator/api/stack.formance.com/v1beta3/control_types.go b/components/operator/api/stack.formance.com/v1beta3/control_types.go deleted file mode 100644 index 3c40bdabaa..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/control_types.go +++ /dev/null @@ -1,9 +0,0 @@ -package v1beta3 - -// +kubebuilder:object:generate=true -type ControlSpec struct { - CommonServiceProperties `json:",inline"` - // +optional - ResourceProperties *ResourceProperties `json:"resourceProperties,omitempty"` - Annotations AnnotationsServicesSpec `json:"annotations,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/gateway_types.go b/components/operator/api/stack.formance.com/v1beta3/gateway_types.go deleted file mode 100644 index 35bd4a9bd1..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/gateway_types.go +++ /dev/null @@ -1,20 +0,0 @@ -package v1beta3 - -// +kubebuilder:object:generate=true -type GatewaySpec struct { - // +optional - ResourceProperties *ResourceProperties `json:"resourceProperties,omitempty"` - // +optional - Annotations AnnotationsServicesSpec `json:"annotations,omitempty"` - // +optional - Fallback *string `json:"fallback,omitempty"` - - // +optional - EnableAuditPlugin *bool `json:"enableAuditPlugin,omitempty"` - - // +optional - LivenessEndpoint string `json:"livenessEndpoint,omitempty"` - - // +optional - EnableScopes *bool `json:"enableScopes,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/groupversion_info.go b/components/operator/api/stack.formance.com/v1beta3/groupversion_info.go deleted file mode 100644 index 14e2772221..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/groupversion_info.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1beta3 contains API Schema definitions for the stack v1beta3 API group -// +kubebuilder:object:generate=true -// +groupName=stack.formance.com -package v1beta3 - -import ( - "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" -) - -var ( - // GroupVersion is group version used to register these objects - GroupVersion = schema.GroupVersion{Group: "stack.formance.com", Version: "v1beta3"} - - // SchemeBuilder is used to add go types to the GroupVersionKind scheme - SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} - - // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme -) diff --git a/components/operator/api/stack.formance.com/v1beta3/ingress.go b/components/operator/api/stack.formance.com/v1beta3/ingress.go deleted file mode 100644 index 597f84ad54..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/ingress.go +++ /dev/null @@ -1,24 +0,0 @@ -package v1beta3 - -import ( - networkingv1 "k8s.io/api/networking/v1" -) - -type IngressTLS struct { - // SecretName is the name of the secret used to terminate TLS traffic on - // port 443. Field is left optional to allow TLS routing based on SNI - // hostname alone. If the SNI host in a listener conflicts with the "Host" - // header field used by an IngressRule, the SNI host is used for termination - // and value of the Host header is used for routing. - // +optional - SecretName string `json:"secretName,omitempty" protobuf:"bytes,2,opt,name=secretName"` -} - -func (t *IngressTLS) AsK8SIngressTLSSlice() []networkingv1.IngressTLS { - if t == nil { - return nil - } - return []networkingv1.IngressTLS{{ - //SecretName: t.SecretName, - }} -} diff --git a/components/operator/api/stack.formance.com/v1beta3/ledger_types.go b/components/operator/api/stack.formance.com/v1beta3/ledger_types.go deleted file mode 100644 index cdc3c67c12..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/ledger_types.go +++ /dev/null @@ -1,56 +0,0 @@ -package v1beta3 - -import ( - "time" -) - -type LockingStrategyRedisConfig struct { - // +optional - Uri string `json:"uri,omitempty"` - // +optional - TLS bool `json:"tls"` - // +optional - InsecureTLS bool `json:"insecure,omitempty"` - // +optional - Duration time.Duration `json:"duration,omitempty"` - // +optional - Retry time.Duration `json:"retry,omitempty"` -} - -type LockingStrategy struct { - // +kubebuilder:Enum:={memory,redis} - // +kubebuilder:default:=memory - // +optional - Strategy string `json:"strategy,omitempty"` - // +optional - Redis LockingStrategyRedisConfig `json:"redis"` -} - -type DeploymentStrategy string - -const ( - DeploymentStrategySingle = "single" - DeploymentStrategyMonoWriterMultipleReader = "single-writer" -) - -// +kubebuilder:object:generate=true -type LedgerSpec struct { - CommonServiceProperties `json:",inline"` - Postgres PostgresConfig `json:"postgres"` - // +optional - Locking LockingStrategy `json:"locking"` - // +optional - AllowPastTimestamps bool `json:"allowPastTimestamps"` - // +optional - ResourceProperties *ResourceProperties `json:"resourceProperties,omitempty"` - Annotations AnnotationsServicesSpec `json:"annotations,omitempty"` - // +optional - DeploymentStrategy DeploymentStrategy `json:"deploymentStrategy,omitempty"` - // +optional - Disabled *bool `json:"disabled,omitempty"` -} - -type ServiceSpec struct { - // +optional - Annotations map[string]string `json:"annotations,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/migration_types.go b/components/operator/api/stack.formance.com/v1beta3/migration_types.go deleted file mode 100644 index 1f7b3b6149..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/migration_types.go +++ /dev/null @@ -1,71 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta3 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// MigrationSpec defines the desired state of Migration -type MigrationSpec struct { - Configuration string `json:"configuration"` - CurrentVersion string `json:"currentVersion"` - Version string `json:"version"` - Module string `json:"module"` - TargetedVersion string `json:"targetedVersion"` - PostUpgrade bool `json:"postUpgrade"` -} - -// MigrationStatus defines the observed state of Migration -type MigrationStatus struct { - Terminated bool `json:"terminated"` - Err string `json:"error,omitempty"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:printcolumn:name="Terminated",type=string,JSONPath=`.status.terminated` -//+kubebuilder:printcolumn:name="Error",type="string",JSONPath=".status.error",description="The migration error" - -// Migration is the Schema for the migrations API -type Migration struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec MigrationSpec `json:"spec,omitempty"` - Status MigrationStatus `json:"status,omitempty"` -} - -func (in *Migration) Discriminator() string { - if in.Spec.PostUpgrade { - return "post" - } - return "pre" -} - -//+kubebuilder:object:root=true - -// MigrationList contains a list of Migration -type MigrationList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Migration `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Migration{}, &MigrationList{}) -} diff --git a/components/operator/api/stack.formance.com/v1beta3/orchestration_types.go b/components/operator/api/stack.formance.com/v1beta3/orchestration_types.go deleted file mode 100644 index 904e260e3f..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/orchestration_types.go +++ /dev/null @@ -1,10 +0,0 @@ -package v1beta3 - -// +kubebuilder:object:generate=true -type OrchestrationSpec struct { - CommonServiceProperties `json:",inline"` - Postgres PostgresConfig `json:"postgres"` - // +optional - ResourceProperties *ResourceProperties `json:"resourceProperties,omitempty"` - Annotations AnnotationsServicesSpec `json:"annotations,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/payments_types.go b/components/operator/api/stack.formance.com/v1beta3/payments_types.go deleted file mode 100644 index 0c0b621fd0..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/payments_types.go +++ /dev/null @@ -1,12 +0,0 @@ -package v1beta3 - -// +kubebuilder:object:generate=true -type PaymentsSpec struct { - CommonServiceProperties `json:",inline"` - EncryptionKey string `json:"encryptionKey"` - Postgres PostgresConfig `json:"postgres"` - - // +optional - ResourceProperties *ResourceProperties `json:"resourceProperties,omitempty"` - Annotations AnnotationsServicesSpec `json:"annotations,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/postgres.go b/components/operator/api/stack.formance.com/v1beta3/postgres.go deleted file mode 100644 index 5b73dbb2de..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/postgres.go +++ /dev/null @@ -1,18 +0,0 @@ -// +kubebuilder:object:generate=true -package v1beta3 - -type PostgresConfig struct { - Port int `json:"port"` - Host string `json:"host"` - // +optional - Username string `json:"username"` - // +optional - Password string `json:"password"` - - // +optional - Debug bool `json:"debug"` - // +optional - CredentialsFromSecret string `json:"credentialsFromSecret"` - // +optional - DisableSSLMode bool `json:"disableSSLMode"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/reconciliation_types.go b/components/operator/api/stack.formance.com/v1beta3/reconciliation_types.go deleted file mode 100644 index b0bc0c8117..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/reconciliation_types.go +++ /dev/null @@ -1,10 +0,0 @@ -package v1beta3 - -type ReconciliationSpec struct { - CommonServiceProperties `json:",inline"` - Postgres PostgresConfig `json:"postgres"` - - // +optional - ResourceProperties *ResourceProperties `json:"resourceProperties,omitempty"` - Annotations AnnotationsServicesSpec `json:"annotations,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/search_types.go b/components/operator/api/stack.formance.com/v1beta3/search_types.go deleted file mode 100644 index 1743a15390..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/search_types.go +++ /dev/null @@ -1,64 +0,0 @@ -package v1beta3 - -import ( - "fmt" -) - -type Batching struct { - Count int `json:"count"` - Period string `json:"period"` -} - -type ElasticSearchTLSConfig struct { - // +optional - Enabled bool `json:"enabled,omitempty"` - // +optional - SkipCertVerify bool `json:"skipCertVerify,omitempty"` -} - -type ElasticSearchBasicAuthConfig struct { - // +optional - Username string `json:"username"` - // +optional - Password string `json:"password"` - // +optional - SecretName string `json:"secretName"` -} - -type ElasticSearchConfig struct { - // +optional - // +kubebuilder:validation:Enum:={http,https} - // +kubebuilder:validation:default:=https - Scheme string `json:"scheme,omitempty"` - Host string `json:"host,omitempty"` - Port uint16 `json:"port,omitempty"` - // +optional - TLS ElasticSearchTLSConfig `json:"tls"` - // +optional - BasicAuth *ElasticSearchBasicAuthConfig `json:"basicAuth,omitempty"` - // +optional - PathPrefix string `json:"pathPrefix"` - // +optional - UseZinc bool `json:"useZinc,omitempty"` -} - -func (in *ElasticSearchConfig) Endpoint() string { - return fmt.Sprintf("%s://%s:%d%s", in.Scheme, in.Host, in.Port, in.PathPrefix) -} - -// +kubebuilder:object:generate=true -type SearchSpec struct { - CommonServiceProperties `json:",inline"` - ElasticSearchConfig ElasticSearchConfig `json:"elasticSearch"` - - // +optional - Batching Batching `json:"batching"` - - // +optional - SearchResourceProperties *ResourceProperties `json:"searchResourceProperties,omitempty"` - // +optional - BenthosResourceProperties *ResourceProperties `json:"benthosResourceProperties,omitempty"` - Annotations AnnotationsServicesSpec `json:"annotations,omitempty"` -} - -const DefaultESIndex = "stacks" diff --git a/components/operator/api/stack.formance.com/v1beta3/shared_types.go b/components/operator/api/stack.formance.com/v1beta3/shared_types.go deleted file mode 100644 index 3a889ea2fd..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/shared_types.go +++ /dev/null @@ -1,13 +0,0 @@ -package v1beta3 - -type DatabaseSpec struct { - // +optional - Url string `json:"url,omitempty"` - // +optional - Type string `json:"type,omitempty"` -} - -type IngressConfig struct { - // +optional - Annotations map[string]string `json:"annotations,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/stack_types.go b/components/operator/api/stack.formance.com/v1beta3/stack_types.go deleted file mode 100644 index d228a4fc36..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/stack_types.go +++ /dev/null @@ -1,201 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta3 - -import ( - "reflect" - - "github.com/formancehq/operator/api/formance.com/v1beta1" - - "github.com/iancoleman/strcase" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type IngressGlobalConfig struct { - IngressConfig `json:",inline"` - // +optional - TLS *IngressTLS `json:"tls,omitempty"` -} - -type DelegatedOIDCServerConfiguration struct { - Issuer string `json:"issuer,omitempty"` - ClientID string `json:"clientID,omitempty"` - ClientSecret string `json:"clientSecret,omitempty"` -} - -type ClientConfiguration struct { - // +optional - Public bool `json:"public"` - // +optional - Description *string `json:"description,omitempty"` - // +optional - RedirectUris []string `json:"redirectUris,omitempty" yaml:"redirectUris"` - // +optional - PostLogoutRedirectUris []string `json:"postLogoutRedirectUris,omitempty" yaml:"PostLogoutRedirectUris"` - // +optional - Scopes []string `json:"scopes,omitempty"` -} - -type StaticClient struct { - ClientConfiguration `json:",inline" yaml:",inline"` - ID string `json:"id" yaml:"id"` - // +optional - Secrets []string `json:"secrets,omitempty" yaml:"secrets"` -} - -type StackAuthSpec struct { - DelegatedOIDCServer DelegatedOIDCServerConfiguration `json:"delegatedOIDCServer"` - // +optional - StaticClients []StaticClient `json:"staticClients,omitempty"` -} - -type StackStargateConfig struct { - StargateServerURL string `json:"stargateServerURL"` -} - -type StackServicesSpec struct { - // +optional - Ledger StackServicePropertiesSpec `json:"ledger,omitempty"` - Orchestration StackServicePropertiesSpec `json:"orchestration,omitempty"` - Reconciliation StackServicePropertiesSpec `json:"reconciliation,omitempty"` - Payments StackServicePropertiesSpec `json:"payments,omitempty"` - Wallets StackServicePropertiesSpec `json:"wallets,omitempty"` - Webhooks StackServicePropertiesSpec `json:"webhooks,omitempty"` - Control StackServicePropertiesSpec `json:"control,omitempty"` -} - -type StackServicePropertiesSpec struct { - // +optional - Disabled *bool `json:"disabled,omitempty"` -} - -// StackSpec defines the desired state of Stack -type StackSpec struct { - DevProperties `json:",inline"` - Seed string `json:"seed"` - // +kubebuilder:validation:Required - Host string `json:"host"` - Auth StackAuthSpec `json:"auth"` - - // +optional - Stargate *StackStargateConfig `json:"stargate,omitempty"` - - // +optional - Versions string `json:"versions"` - - // +optional - // +kubebuilder:default:="http" - Scheme string `json:"scheme"` - - // +optional - Disabled bool `json:"disabled"` - - // +optional - Services StackServicesSpec `json:"services,omitempty"` -} - -func (in *StackServicesSpec) getDisabledProperty(service string) *bool { - valueOf := reflect.ValueOf(in).Elem().FieldByName(strcase.ToCamel(service)) - if valueOf.IsValid() { - properties := valueOf.Interface().(StackServicePropertiesSpec) - return properties.Disabled - } - return nil -} - -func (in *StackServicesSpec) IsExplicitlyDisabled(service string) bool { - disabled := in.getDisabledProperty(service) - return disabled != nil && *disabled -} - -func (in *StackServicesSpec) IsExplicitlyEnabled(service string) bool { - disabled := in.getDisabledProperty(service) - return disabled != nil && !*disabled -} - -type ControlAuthentication struct { - ClientID string -} - -/* todo: group statuses by module */ - -type StackStatus struct { - Status `json:",inline"` - - // +optional - Ports map[string]map[string]int32 `json:"ports,omitempty"` - - // +optional - StaticAuthClients map[string]StaticClient `json:"staticAuthClients,omitempty"` - - // +optional - LightMode bool `json:"light"` - - // +optional - Ready bool `json:"ready,omitempty"` - // +optional - Error string `json:"error,omitempty"` -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:resource:scope=Cluster -//+kubebuilder:printcolumn:name="Disable",type=string,JSONPath=".spec.disabled",description="Stack Disabled" -//+kubebuilder:printcolumn:name="Version",type="string",JSONPath=".spec.versions",description="Stack Version" -//+kubebuilder:printcolumn:name="Configuration",type="string",JSONPath=".spec.seed",description="Stack Configuration" -//+kubebuilder:storageversion - -// Stack is the Schema for the stacks API -type Stack struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec StackSpec `json:"spec,omitempty"` - Status StackStatus `json:"status,omitempty"` -} - -func (in *Stack) SetReady(b bool) { - in.Status.Ready = true -} - -func (in *Stack) IsReady() bool { - return in.Status.Ready -} - -func (in *Stack) SetError(s string) { - in.Status.Error = s -} - -func (in *Stack) GetConditions() *v1beta1.Conditions { - // not used - return &v1beta1.Conditions{} -} - -func (*Stack) Hub() {} - -//+kubebuilder:object:root=true - -// StackList contains a list of Stack -type StackList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Stack `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Stack{}, &StackList{}) -} diff --git a/components/operator/api/stack.formance.com/v1beta3/stargate_types.go b/components/operator/api/stack.formance.com/v1beta3/stargate_types.go deleted file mode 100644 index 3e6705736c..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/stargate_types.go +++ /dev/null @@ -1,9 +0,0 @@ -package v1beta3 - -type StargateSpec struct { - // +optional - DevProperties `json:",inline"` - // +optional - ResourceProperties *ResourceProperties `json:"resourceProperties,omitempty"` - Annotations AnnotationsServicesSpec `json:"annotations,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/status.go b/components/operator/api/stack.formance.com/v1beta3/status.go deleted file mode 100644 index 02404fda62..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/status.go +++ /dev/null @@ -1,7 +0,0 @@ -package v1beta3 - -type Status struct { - // +patchMergeKey=type - // +patchStrategy=merge - Conditions Conditions `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/versions_types.go b/components/operator/api/stack.formance.com/v1beta3/versions_types.go deleted file mode 100644 index 92d3462654..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/versions_types.go +++ /dev/null @@ -1,80 +0,0 @@ -/* -Copyright 2022. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta3 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// VersionsSpec defines the desired state of Versions -type VersionsSpec struct { - // +optional - Control string `json:"control"` - // +optional - Ledger string `json:"ledger"` - // +optional - Payments string `json:"payments"` - // +optional - Search string `json:"search"` - // +optional - Auth string `json:"auth"` - // +optional - Webhooks string `json:"webhooks"` - // +optional - Wallets string `json:"wallets"` - // +optional - Orchestration string `json:"orchestration"` - // +optional - Gateway string `json:"gateway"` - // +optional - Stargate string `json:"stargate"` - // +optional - Reconciliation string `json:"reconciliation"` -} - -// VersionsStatus defines the observed state of Versions -type VersionsStatus struct { -} - -//+kubebuilder:object:root=true -//+kubebuilder:subresource:status -//+kubebuilder:storageversion -//+kubebuilder:resource:scope=Cluster - -// Versions is the Schema for the versions API -type Versions struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec VersionsSpec `json:"spec,omitempty"` - Status VersionsStatus `json:"status,omitempty"` -} - -func (*Versions) Hub() {} - -//+kubebuilder:object:root=true - -// VersionsList contains a list of Versions -type VersionsList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Versions `json:"items"` -} - -func init() { - SchemeBuilder.Register(&Versions{}, &VersionsList{}) -} diff --git a/components/operator/api/stack.formance.com/v1beta3/wallets_types.go b/components/operator/api/stack.formance.com/v1beta3/wallets_types.go deleted file mode 100644 index e011825425..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/wallets_types.go +++ /dev/null @@ -1,9 +0,0 @@ -package v1beta3 - -// +kubebuilder:object:generate=true -type WalletsSpec struct { - CommonServiceProperties `json:",inline"` - // +optional - ResourceProperties *ResourceProperties `json:"resourceProperties,omitempty"` - Annotations AnnotationsServicesSpec `json:"annotations,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/webhooks_types.go b/components/operator/api/stack.formance.com/v1beta3/webhooks_types.go deleted file mode 100644 index 69a76d14aa..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/webhooks_types.go +++ /dev/null @@ -1,12 +0,0 @@ -package v1beta3 - -// +kubebuilder:object:generate=true -type WebhooksSpec struct { - CommonServiceProperties `json:",inline"` - Postgres PostgresConfig `json:"postgres"` - // +optional - DevProperties `json:",inline"` - // +optional - ResourceProperties *ResourceProperties `json:"resourceProperties,omitempty"` - Annotations AnnotationsServicesSpec `json:"annotations,omitempty"` -} diff --git a/components/operator/api/stack.formance.com/v1beta3/zz_generated.deepcopy.go b/components/operator/api/stack.formance.com/v1beta3/zz_generated.deepcopy.go deleted file mode 100644 index 78105a4be4..0000000000 --- a/components/operator/api/stack.formance.com/v1beta3/zz_generated.deepcopy.go +++ /dev/null @@ -1,1497 +0,0 @@ -//go:build !ignore_autogenerated - -/* -Copyright 2023. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by controller-gen. DO NOT EDIT. - -package v1beta3 - -import ( - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AnnotationsServicesSpec) DeepCopyInto(out *AnnotationsServicesSpec) { - *out = *in - if in.Service != nil { - in, out := &in.Service, &out.Service - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnnotationsServicesSpec. -func (in *AnnotationsServicesSpec) DeepCopy() *AnnotationsServicesSpec { - if in == nil { - return nil - } - out := new(AnnotationsServicesSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuthConfig) DeepCopyInto(out *AuthConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthConfig. -func (in *AuthConfig) DeepCopy() *AuthConfig { - if in == nil { - return nil - } - out := new(AuthConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AuthSpec) DeepCopyInto(out *AuthSpec) { - *out = *in - out.Postgres = in.Postgres - if in.StaticClients != nil { - in, out := &in.StaticClients, &out.StaticClients - *out = make([]StaticClient, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - out.DevProperties = in.DevProperties - if in.ResourceProperties != nil { - in, out := &in.ResourceProperties, &out.ResourceProperties - *out = new(ResourceProperties) - (*in).DeepCopyInto(*out) - } - in.Annotations.DeepCopyInto(&out.Annotations) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthSpec. -func (in *AuthSpec) DeepCopy() *AuthSpec { - if in == nil { - return nil - } - out := new(AuthSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Batching) DeepCopyInto(out *Batching) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Batching. -func (in *Batching) DeepCopy() *Batching { - if in == nil { - return nil - } - out := new(Batching) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Broker) DeepCopyInto(out *Broker) { - *out = *in - if in.Kafka != nil { - in, out := &in.Kafka, &out.Kafka - *out = new(KafkaConfig) - (*in).DeepCopyInto(*out) - } - if in.Nats != nil { - in, out := &in.Nats, &out.Nats - *out = new(NatsConfig) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Broker. -func (in *Broker) DeepCopy() *Broker { - if in == nil { - return nil - } - out := new(Broker) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ClientConfiguration) DeepCopyInto(out *ClientConfiguration) { - *out = *in - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.RedirectUris != nil { - in, out := &in.RedirectUris, &out.RedirectUris - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.PostLogoutRedirectUris != nil { - in, out := &in.PostLogoutRedirectUris, &out.PostLogoutRedirectUris - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Scopes != nil { - in, out := &in.Scopes, &out.Scopes - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientConfiguration. -func (in *ClientConfiguration) DeepCopy() *ClientConfiguration { - if in == nil { - return nil - } - out := new(ClientConfiguration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CollectorConfig) DeepCopyInto(out *CollectorConfig) { - *out = *in - in.Broker.DeepCopyInto(&out.Broker) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CollectorConfig. -func (in *CollectorConfig) DeepCopy() *CollectorConfig { - if in == nil { - return nil - } - out := new(CollectorConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CommonServiceProperties) DeepCopyInto(out *CommonServiceProperties) { - *out = *in - out.DevProperties = in.DevProperties - if in.Disabled != nil { - in, out := &in.Disabled, &out.Disabled - *out = new(bool) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonServiceProperties. -func (in *CommonServiceProperties) DeepCopy() *CommonServiceProperties { - if in == nil { - return nil - } - out := new(CommonServiceProperties) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Condition) DeepCopyInto(out *Condition) { - *out = *in - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition. -func (in *Condition) DeepCopy() *Condition { - if in == nil { - return nil - } - out := new(Condition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in Conditions) DeepCopyInto(out *Conditions) { - { - in := &in - *out = make(Conditions, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Conditions. -func (in Conditions) DeepCopy() Conditions { - if in == nil { - return nil - } - out := new(Conditions) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Configuration) DeepCopyInto(out *Configuration) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Configuration. -func (in *Configuration) DeepCopy() *Configuration { - if in == nil { - return nil - } - out := new(Configuration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Configuration) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigurationList) DeepCopyInto(out *ConfigurationList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Configuration, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationList. -func (in *ConfigurationList) DeepCopy() *ConfigurationList { - if in == nil { - return nil - } - out := new(ConfigurationList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ConfigurationList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigurationServicesSpec) DeepCopyInto(out *ConfigurationServicesSpec) { - *out = *in - in.Control.DeepCopyInto(&out.Control) - in.Ledger.DeepCopyInto(&out.Ledger) - in.Payments.DeepCopyInto(&out.Payments) - in.Reconciliation.DeepCopyInto(&out.Reconciliation) - in.Webhooks.DeepCopyInto(&out.Webhooks) - in.Wallets.DeepCopyInto(&out.Wallets) - in.Orchestration.DeepCopyInto(&out.Orchestration) - in.Search.DeepCopyInto(&out.Search) - in.Auth.DeepCopyInto(&out.Auth) - in.Gateway.DeepCopyInto(&out.Gateway) - in.Stargate.DeepCopyInto(&out.Stargate) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationServicesSpec. -func (in *ConfigurationServicesSpec) DeepCopy() *ConfigurationServicesSpec { - if in == nil { - return nil - } - out := new(ConfigurationServicesSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigurationSpec) DeepCopyInto(out *ConfigurationSpec) { - *out = *in - in.Services.DeepCopyInto(&out.Services) - in.Broker.DeepCopyInto(&out.Broker) - if in.Monitoring != nil { - in, out := &in.Monitoring, &out.Monitoring - *out = new(MonitoringSpec) - (*in).DeepCopyInto(*out) - } - if in.Auth != nil { - in, out := &in.Auth, &out.Auth - *out = new(AuthConfig) - **out = **in - } - in.Ingress.DeepCopyInto(&out.Ingress) - out.Temporal = in.Temporal - if in.Registries != nil { - in, out := &in.Registries, &out.Registries - *out = make(map[string]RegistryConfig, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationSpec. -func (in *ConfigurationSpec) DeepCopy() *ConfigurationSpec { - if in == nil { - return nil - } - out := new(ConfigurationSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ControlAuthentication) DeepCopyInto(out *ControlAuthentication) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlAuthentication. -func (in *ControlAuthentication) DeepCopy() *ControlAuthentication { - if in == nil { - return nil - } - out := new(ControlAuthentication) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ControlSpec) DeepCopyInto(out *ControlSpec) { - *out = *in - in.CommonServiceProperties.DeepCopyInto(&out.CommonServiceProperties) - if in.ResourceProperties != nil { - in, out := &in.ResourceProperties, &out.ResourceProperties - *out = new(ResourceProperties) - (*in).DeepCopyInto(*out) - } - in.Annotations.DeepCopyInto(&out.Annotations) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlSpec. -func (in *ControlSpec) DeepCopy() *ControlSpec { - if in == nil { - return nil - } - out := new(ControlSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DatabaseSpec) DeepCopyInto(out *DatabaseSpec) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseSpec. -func (in *DatabaseSpec) DeepCopy() *DatabaseSpec { - if in == nil { - return nil - } - out := new(DatabaseSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DelegatedOIDCServerConfiguration) DeepCopyInto(out *DelegatedOIDCServerConfiguration) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DelegatedOIDCServerConfiguration. -func (in *DelegatedOIDCServerConfiguration) DeepCopy() *DelegatedOIDCServerConfiguration { - if in == nil { - return nil - } - out := new(DelegatedOIDCServerConfiguration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DevProperties) DeepCopyInto(out *DevProperties) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DevProperties. -func (in *DevProperties) DeepCopy() *DevProperties { - if in == nil { - return nil - } - out := new(DevProperties) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ElasticSearchBasicAuthConfig) DeepCopyInto(out *ElasticSearchBasicAuthConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticSearchBasicAuthConfig. -func (in *ElasticSearchBasicAuthConfig) DeepCopy() *ElasticSearchBasicAuthConfig { - if in == nil { - return nil - } - out := new(ElasticSearchBasicAuthConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ElasticSearchConfig) DeepCopyInto(out *ElasticSearchConfig) { - *out = *in - out.TLS = in.TLS - if in.BasicAuth != nil { - in, out := &in.BasicAuth, &out.BasicAuth - *out = new(ElasticSearchBasicAuthConfig) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticSearchConfig. -func (in *ElasticSearchConfig) DeepCopy() *ElasticSearchConfig { - if in == nil { - return nil - } - out := new(ElasticSearchConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ElasticSearchTLSConfig) DeepCopyInto(out *ElasticSearchTLSConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticSearchTLSConfig. -func (in *ElasticSearchTLSConfig) DeepCopy() *ElasticSearchTLSConfig { - if in == nil { - return nil - } - out := new(ElasticSearchTLSConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *GatewaySpec) DeepCopyInto(out *GatewaySpec) { - *out = *in - if in.ResourceProperties != nil { - in, out := &in.ResourceProperties, &out.ResourceProperties - *out = new(ResourceProperties) - (*in).DeepCopyInto(*out) - } - in.Annotations.DeepCopyInto(&out.Annotations) - if in.Fallback != nil { - in, out := &in.Fallback, &out.Fallback - *out = new(string) - **out = **in - } - if in.EnableAuditPlugin != nil { - in, out := &in.EnableAuditPlugin, &out.EnableAuditPlugin - *out = new(bool) - **out = **in - } - if in.EnableScopes != nil { - in, out := &in.EnableScopes, &out.EnableScopes - *out = new(bool) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewaySpec. -func (in *GatewaySpec) DeepCopy() *GatewaySpec { - if in == nil { - return nil - } - out := new(GatewaySpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IngressConfig) DeepCopyInto(out *IngressConfig) { - *out = *in - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressConfig. -func (in *IngressConfig) DeepCopy() *IngressConfig { - if in == nil { - return nil - } - out := new(IngressConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IngressGlobalConfig) DeepCopyInto(out *IngressGlobalConfig) { - *out = *in - in.IngressConfig.DeepCopyInto(&out.IngressConfig) - if in.TLS != nil { - in, out := &in.TLS, &out.TLS - *out = new(IngressTLS) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressGlobalConfig. -func (in *IngressGlobalConfig) DeepCopy() *IngressGlobalConfig { - if in == nil { - return nil - } - out := new(IngressGlobalConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *IngressTLS) DeepCopyInto(out *IngressTLS) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressTLS. -func (in *IngressTLS) DeepCopy() *IngressTLS { - if in == nil { - return nil - } - out := new(IngressTLS) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KafkaConfig) DeepCopyInto(out *KafkaConfig) { - *out = *in - if in.Brokers != nil { - in, out := &in.Brokers, &out.Brokers - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.SASL != nil { - in, out := &in.SASL, &out.SASL - *out = new(KafkaSASLConfig) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KafkaConfig. -func (in *KafkaConfig) DeepCopy() *KafkaConfig { - if in == nil { - return nil - } - out := new(KafkaConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KafkaSASLConfig) DeepCopyInto(out *KafkaSASLConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KafkaSASLConfig. -func (in *KafkaSASLConfig) DeepCopy() *KafkaSASLConfig { - if in == nil { - return nil - } - out := new(KafkaSASLConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LedgerSpec) DeepCopyInto(out *LedgerSpec) { - *out = *in - in.CommonServiceProperties.DeepCopyInto(&out.CommonServiceProperties) - out.Postgres = in.Postgres - out.Locking = in.Locking - if in.ResourceProperties != nil { - in, out := &in.ResourceProperties, &out.ResourceProperties - *out = new(ResourceProperties) - (*in).DeepCopyInto(*out) - } - in.Annotations.DeepCopyInto(&out.Annotations) - if in.Disabled != nil { - in, out := &in.Disabled, &out.Disabled - *out = new(bool) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LedgerSpec. -func (in *LedgerSpec) DeepCopy() *LedgerSpec { - if in == nil { - return nil - } - out := new(LedgerSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LockingStrategy) DeepCopyInto(out *LockingStrategy) { - *out = *in - out.Redis = in.Redis -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LockingStrategy. -func (in *LockingStrategy) DeepCopy() *LockingStrategy { - if in == nil { - return nil - } - out := new(LockingStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *LockingStrategyRedisConfig) DeepCopyInto(out *LockingStrategyRedisConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LockingStrategyRedisConfig. -func (in *LockingStrategyRedisConfig) DeepCopy() *LockingStrategyRedisConfig { - if in == nil { - return nil - } - out := new(LockingStrategyRedisConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MetricsSpec) DeepCopyInto(out *MetricsSpec) { - *out = *in - if in.Otlp != nil { - in, out := &in.Otlp, &out.Otlp - *out = new(OtlpSpec) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsSpec. -func (in *MetricsSpec) DeepCopy() *MetricsSpec { - if in == nil { - return nil - } - out := new(MetricsSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Migration) DeepCopyInto(out *Migration) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec - out.Status = in.Status -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Migration. -func (in *Migration) DeepCopy() *Migration { - if in == nil { - return nil - } - out := new(Migration) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Migration) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MigrationList) DeepCopyInto(out *MigrationList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Migration, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MigrationList. -func (in *MigrationList) DeepCopy() *MigrationList { - if in == nil { - return nil - } - out := new(MigrationList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MigrationList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MigrationSpec) DeepCopyInto(out *MigrationSpec) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MigrationSpec. -func (in *MigrationSpec) DeepCopy() *MigrationSpec { - if in == nil { - return nil - } - out := new(MigrationSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MigrationStatus) DeepCopyInto(out *MigrationStatus) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MigrationStatus. -func (in *MigrationStatus) DeepCopy() *MigrationStatus { - if in == nil { - return nil - } - out := new(MigrationStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonitoringSpec) DeepCopyInto(out *MonitoringSpec) { - *out = *in - if in.Traces != nil { - in, out := &in.Traces, &out.Traces - *out = new(TracesSpec) - (*in).DeepCopyInto(*out) - } - if in.Metrics != nil { - in, out := &in.Metrics, &out.Metrics - *out = new(MetricsSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitoringSpec. -func (in *MonitoringSpec) DeepCopy() *MonitoringSpec { - if in == nil { - return nil - } - out := new(MonitoringSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NatsConfig) DeepCopyInto(out *NatsConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NatsConfig. -func (in *NatsConfig) DeepCopy() *NatsConfig { - if in == nil { - return nil - } - out := new(NatsConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OrchestrationSpec) DeepCopyInto(out *OrchestrationSpec) { - *out = *in - in.CommonServiceProperties.DeepCopyInto(&out.CommonServiceProperties) - out.Postgres = in.Postgres - if in.ResourceProperties != nil { - in, out := &in.ResourceProperties, &out.ResourceProperties - *out = new(ResourceProperties) - (*in).DeepCopyInto(*out) - } - in.Annotations.DeepCopyInto(&out.Annotations) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrchestrationSpec. -func (in *OrchestrationSpec) DeepCopy() *OrchestrationSpec { - if in == nil { - return nil - } - out := new(OrchestrationSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OtlpSpec) DeepCopyInto(out *OtlpSpec) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OtlpSpec. -func (in *OtlpSpec) DeepCopy() *OtlpSpec { - if in == nil { - return nil - } - out := new(OtlpSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PaymentsSpec) DeepCopyInto(out *PaymentsSpec) { - *out = *in - in.CommonServiceProperties.DeepCopyInto(&out.CommonServiceProperties) - out.Postgres = in.Postgres - if in.ResourceProperties != nil { - in, out := &in.ResourceProperties, &out.ResourceProperties - *out = new(ResourceProperties) - (*in).DeepCopyInto(*out) - } - in.Annotations.DeepCopyInto(&out.Annotations) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PaymentsSpec. -func (in *PaymentsSpec) DeepCopy() *PaymentsSpec { - if in == nil { - return nil - } - out := new(PaymentsSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PostgresConfig) DeepCopyInto(out *PostgresConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PostgresConfig. -func (in *PostgresConfig) DeepCopy() *PostgresConfig { - if in == nil { - return nil - } - out := new(PostgresConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ReconciliationSpec) DeepCopyInto(out *ReconciliationSpec) { - *out = *in - in.CommonServiceProperties.DeepCopyInto(&out.CommonServiceProperties) - out.Postgres = in.Postgres - if in.ResourceProperties != nil { - in, out := &in.ResourceProperties, &out.ResourceProperties - *out = new(ResourceProperties) - (*in).DeepCopyInto(*out) - } - in.Annotations.DeepCopyInto(&out.Annotations) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReconciliationSpec. -func (in *ReconciliationSpec) DeepCopy() *ReconciliationSpec { - if in == nil { - return nil - } - out := new(ReconciliationSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RegistryConfig) DeepCopyInto(out *RegistryConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryConfig. -func (in *RegistryConfig) DeepCopy() *RegistryConfig { - if in == nil { - return nil - } - out := new(RegistryConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Resource) DeepCopyInto(out *Resource) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resource. -func (in *Resource) DeepCopy() *Resource { - if in == nil { - return nil - } - out := new(Resource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceProperties) DeepCopyInto(out *ResourceProperties) { - *out = *in - if in.Request != nil { - in, out := &in.Request, &out.Request - *out = new(Resource) - **out = **in - } - if in.Limits != nil { - in, out := &in.Limits, &out.Limits - *out = new(Resource) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceProperties. -func (in *ResourceProperties) DeepCopy() *ResourceProperties { - if in == nil { - return nil - } - out := new(ResourceProperties) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SearchSpec) DeepCopyInto(out *SearchSpec) { - *out = *in - in.CommonServiceProperties.DeepCopyInto(&out.CommonServiceProperties) - in.ElasticSearchConfig.DeepCopyInto(&out.ElasticSearchConfig) - out.Batching = in.Batching - if in.SearchResourceProperties != nil { - in, out := &in.SearchResourceProperties, &out.SearchResourceProperties - *out = new(ResourceProperties) - (*in).DeepCopyInto(*out) - } - if in.BenthosResourceProperties != nil { - in, out := &in.BenthosResourceProperties, &out.BenthosResourceProperties - *out = new(ResourceProperties) - (*in).DeepCopyInto(*out) - } - in.Annotations.DeepCopyInto(&out.Annotations) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchSpec. -func (in *SearchSpec) DeepCopy() *SearchSpec { - if in == nil { - return nil - } - out := new(SearchSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) { - *out = *in - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec. -func (in *ServiceSpec) DeepCopy() *ServiceSpec { - if in == nil { - return nil - } - out := new(ServiceSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Stack) DeepCopyInto(out *Stack) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Stack. -func (in *Stack) DeepCopy() *Stack { - if in == nil { - return nil - } - out := new(Stack) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Stack) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StackAuthSpec) DeepCopyInto(out *StackAuthSpec) { - *out = *in - out.DelegatedOIDCServer = in.DelegatedOIDCServer - if in.StaticClients != nil { - in, out := &in.StaticClients, &out.StaticClients - *out = make([]StaticClient, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackAuthSpec. -func (in *StackAuthSpec) DeepCopy() *StackAuthSpec { - if in == nil { - return nil - } - out := new(StackAuthSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StackList) DeepCopyInto(out *StackList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Stack, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackList. -func (in *StackList) DeepCopy() *StackList { - if in == nil { - return nil - } - out := new(StackList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *StackList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StackServicePropertiesSpec) DeepCopyInto(out *StackServicePropertiesSpec) { - *out = *in - if in.Disabled != nil { - in, out := &in.Disabled, &out.Disabled - *out = new(bool) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackServicePropertiesSpec. -func (in *StackServicePropertiesSpec) DeepCopy() *StackServicePropertiesSpec { - if in == nil { - return nil - } - out := new(StackServicePropertiesSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StackServicesSpec) DeepCopyInto(out *StackServicesSpec) { - *out = *in - in.Ledger.DeepCopyInto(&out.Ledger) - in.Orchestration.DeepCopyInto(&out.Orchestration) - in.Reconciliation.DeepCopyInto(&out.Reconciliation) - in.Payments.DeepCopyInto(&out.Payments) - in.Wallets.DeepCopyInto(&out.Wallets) - in.Webhooks.DeepCopyInto(&out.Webhooks) - in.Control.DeepCopyInto(&out.Control) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackServicesSpec. -func (in *StackServicesSpec) DeepCopy() *StackServicesSpec { - if in == nil { - return nil - } - out := new(StackServicesSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StackSpec) DeepCopyInto(out *StackSpec) { - *out = *in - out.DevProperties = in.DevProperties - in.Auth.DeepCopyInto(&out.Auth) - if in.Stargate != nil { - in, out := &in.Stargate, &out.Stargate - *out = new(StackStargateConfig) - **out = **in - } - in.Services.DeepCopyInto(&out.Services) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackSpec. -func (in *StackSpec) DeepCopy() *StackSpec { - if in == nil { - return nil - } - out := new(StackSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StackStargateConfig) DeepCopyInto(out *StackStargateConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackStargateConfig. -func (in *StackStargateConfig) DeepCopy() *StackStargateConfig { - if in == nil { - return nil - } - out := new(StackStargateConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StackStatus) DeepCopyInto(out *StackStatus) { - *out = *in - in.Status.DeepCopyInto(&out.Status) - if in.Ports != nil { - in, out := &in.Ports, &out.Ports - *out = make(map[string]map[string]int32, len(*in)) - for key, val := range *in { - var outVal map[string]int32 - if val == nil { - (*out)[key] = nil - } else { - inVal := (*in)[key] - in, out := &inVal, &outVal - *out = make(map[string]int32, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - (*out)[key] = outVal - } - } - if in.StaticAuthClients != nil { - in, out := &in.StaticAuthClients, &out.StaticAuthClients - *out = make(map[string]StaticClient, len(*in)) - for key, val := range *in { - (*out)[key] = *val.DeepCopy() - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackStatus. -func (in *StackStatus) DeepCopy() *StackStatus { - if in == nil { - return nil - } - out := new(StackStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StargateSpec) DeepCopyInto(out *StargateSpec) { - *out = *in - out.DevProperties = in.DevProperties - if in.ResourceProperties != nil { - in, out := &in.ResourceProperties, &out.ResourceProperties - *out = new(ResourceProperties) - (*in).DeepCopyInto(*out) - } - in.Annotations.DeepCopyInto(&out.Annotations) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StargateSpec. -func (in *StargateSpec) DeepCopy() *StargateSpec { - if in == nil { - return nil - } - out := new(StargateSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StaticClient) DeepCopyInto(out *StaticClient) { - *out = *in - in.ClientConfiguration.DeepCopyInto(&out.ClientConfiguration) - if in.Secrets != nil { - in, out := &in.Secrets, &out.Secrets - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StaticClient. -func (in *StaticClient) DeepCopy() *StaticClient { - if in == nil { - return nil - } - out := new(StaticClient) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Status) DeepCopyInto(out *Status) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make(Conditions, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Status. -func (in *Status) DeepCopy() *Status { - if in == nil { - return nil - } - out := new(Status) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TemporalConfig) DeepCopyInto(out *TemporalConfig) { - *out = *in - out.TLS = in.TLS -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalConfig. -func (in *TemporalConfig) DeepCopy() *TemporalConfig { - if in == nil { - return nil - } - out := new(TemporalConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TemporalTLSConfig) DeepCopyInto(out *TemporalTLSConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalTLSConfig. -func (in *TemporalTLSConfig) DeepCopy() *TemporalTLSConfig { - if in == nil { - return nil - } - out := new(TemporalTLSConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TracesSpec) DeepCopyInto(out *TracesSpec) { - *out = *in - if in.Otlp != nil { - in, out := &in.Otlp, &out.Otlp - *out = new(OtlpSpec) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracesSpec. -func (in *TracesSpec) DeepCopy() *TracesSpec { - if in == nil { - return nil - } - out := new(TracesSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Versions) DeepCopyInto(out *Versions) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec - out.Status = in.Status -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Versions. -func (in *Versions) DeepCopy() *Versions { - if in == nil { - return nil - } - out := new(Versions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Versions) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VersionsList) DeepCopyInto(out *VersionsList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Versions, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionsList. -func (in *VersionsList) DeepCopy() *VersionsList { - if in == nil { - return nil - } - out := new(VersionsList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *VersionsList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VersionsSpec) DeepCopyInto(out *VersionsSpec) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionsSpec. -func (in *VersionsSpec) DeepCopy() *VersionsSpec { - if in == nil { - return nil - } - out := new(VersionsSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *VersionsStatus) DeepCopyInto(out *VersionsStatus) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionsStatus. -func (in *VersionsStatus) DeepCopy() *VersionsStatus { - if in == nil { - return nil - } - out := new(VersionsStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WalletsSpec) DeepCopyInto(out *WalletsSpec) { - *out = *in - in.CommonServiceProperties.DeepCopyInto(&out.CommonServiceProperties) - if in.ResourceProperties != nil { - in, out := &in.ResourceProperties, &out.ResourceProperties - *out = new(ResourceProperties) - (*in).DeepCopyInto(*out) - } - in.Annotations.DeepCopyInto(&out.Annotations) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WalletsSpec. -func (in *WalletsSpec) DeepCopy() *WalletsSpec { - if in == nil { - return nil - } - out := new(WalletsSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *WebhooksSpec) DeepCopyInto(out *WebhooksSpec) { - *out = *in - in.CommonServiceProperties.DeepCopyInto(&out.CommonServiceProperties) - out.Postgres = in.Postgres - out.DevProperties = in.DevProperties - if in.ResourceProperties != nil { - in, out := &in.ResourceProperties, &out.ResourceProperties - *out = new(ResourceProperties) - (*in).DeepCopyInto(*out) - } - in.Annotations.DeepCopyInto(&out.Annotations) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhooksSpec. -func (in *WebhooksSpec) DeepCopy() *WebhooksSpec { - if in == nil { - return nil - } - out := new(WebhooksSpec) - in.DeepCopyInto(out) - return out -} diff --git a/components/operator/cmd/main.go b/components/operator/cmd/main.go index 059bea205d..4bcf2e1a27 100644 --- a/components/operator/cmd/main.go +++ b/components/operator/cmd/main.go @@ -39,7 +39,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/log/zap" metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server" - stackformancecomv1beta3 "github.com/formancehq/operator/api/stack.formance.com/v1beta3" _ "github.com/formancehq/operator/internal/resources" formancecomv1beta1 "github.com/formancehq/operator/api/formance.com/v1beta1" @@ -54,7 +53,6 @@ var ( func init() { utilruntime.Must(clientgoscheme.AddToScheme(scheme)) utilruntime.Must(formancev1beta1.AddToScheme(scheme)) - utilruntime.Must(stackformancecomv1beta3.AddToScheme(scheme)) utilruntime.Must(formancecomv1beta1.AddToScheme(scheme)) //+kubebuilder:scaffold:scheme } diff --git a/components/operator/config/crd/bases/auth.components.formance.com_clients.yaml b/components/operator/config/crd/bases/auth.components.formance.com_clients.yaml deleted file mode 100644 index 3fbb409740..0000000000 --- a/components/operator/config/crd/bases/auth.components.formance.com_clients.yaml +++ /dev/null @@ -1,238 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: clients.auth.components.formance.com -spec: - group: auth.components.formance.com - names: - kind: Client - listKind: ClientList - plural: clients - singular: client - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Auth server ID - jsonPath: .status.authServerID - name: Server ID - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: Client is the Schema for the oauths API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - authServerReference: - type: string - description: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - required: - - authServerReference - type: object - status: - description: ClientStatus defines the observed state of Client - properties: - authServerID: - type: string - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - scopes: - additionalProperties: - type: string - type: object - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: Auth server ID - jsonPath: .status.authServerID - name: Server ID - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: Client is the Schema for the oauths API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - authServerReference: - type: string - description: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - required: - - authServerReference - type: object - status: - description: ClientStatus defines the observed state of Client - properties: - authServerID: - type: string - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - scopes: - additionalProperties: - type: string - type: object - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/config/crd/bases/auth.components.formance.com_scopes.yaml b/components/operator/config/crd/bases/auth.components.formance.com_scopes.yaml deleted file mode 100644 index c08182ef72..0000000000 --- a/components/operator/config/crd/bases/auth.components.formance.com_scopes.yaml +++ /dev/null @@ -1,245 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: scopes.auth.components.formance.com -spec: - group: auth.components.formance.com - names: - kind: Scope - listKind: ScopeList - plural: scopes - singular: scope - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Auth server ID - jsonPath: .status.authServerID - name: Server ID - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: Scope is the Schema for the scopes API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - authServerReference: - type: string - label: - type: string - transient: - items: - type: string - type: array - required: - - authServerReference - - label - type: object - status: - description: ScopeStatus defines the observed state of Scope - properties: - authServerID: - type: string - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - transient: - additionalProperties: - properties: - authServerID: - type: string - date: - type: string - observedGeneration: - format: int64 - type: integer - required: - - authServerID - - date - - observedGeneration - type: object - type: object - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: Auth server ID - jsonPath: .status.authServerID - name: Server ID - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: Scope is the Schema for the scopes API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ScopeSpec defines the desired state of Scope - properties: - authServerReference: - type: string - label: - type: string - transient: - items: - type: string - type: array - required: - - authServerReference - - label - type: object - status: - description: ScopeStatus defines the observed state of Scope - properties: - authServerID: - type: string - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - transient: - additionalProperties: - properties: - authServerID: - type: string - date: - type: string - observedGeneration: - format: int64 - type: integer - required: - - authServerID - - date - - observedGeneration - type: object - type: object - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/config/crd/bases/components.formance.com_auths.yaml b/components/operator/config/crd/bases/components.formance.com_auths.yaml deleted file mode 100644 index 768d2d1e9d..0000000000 --- a/components/operator/config/crd/bases/components.formance.com_auths.yaml +++ /dev/null @@ -1,2454 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: auths.components.formance.com -spec: - group: components.formance.com - names: - kind: Auth - listKind: AuthList - plural: auths - singular: auth - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Auth is the Schema for the auths API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - baseURL: - type: string - delegatedOIDCServer: - properties: - clientID: - type: string - clientIDFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - clientSecret: - type: string - clientSecretFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - issuer: - type: string - issuerFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - devMode: - type: boolean - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - host: - type: string - path: - type: string - tls: - properties: - secretName: - description: |- - SecretName is the name of the secret used to terminate TLS traffic on - port 443. Field is left optional to allow TLS routing based on SNI - hostname alone. If the SNI host in a listener conflicts with the "Host" - header field used by an IngressRule, the SNI host is used for termination - and value of the Host header is used for routing. - type: string - type: object - required: - - host - - path - type: object - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container in the - pods of the scaling target - type: string - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of the referent - type: string - kind: - description: 'kind is the kind of the referent; More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - postgres: - properties: - createDatabase: - type: boolean - database: - type: string - databaseFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - createDatabase - type: object - replicas: - default: 1 - format: int32 - type: integer - signingKey: - description: |- - SigningKey is a private key - The signing key is used by the server to sign JWT tokens - The value of this config will be copied to a secret and injected inside - the env vars of the server using secret mapping. - If not specified, a key will be automatically generated. - type: string - staticClients: - items: - properties: - description: - type: string - id: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - secrets: - items: - type: string - type: array - required: - - id - type: object - type: array - required: - - baseURL - - delegatedOIDCServer - - devMode - - postgres - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - replicas: - format: int32 - type: integer - selector: - type: string - type: object - type: object - served: true - storage: false - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.replicas - status: {} - - name: v1beta2 - schema: - openAPIV3Schema: - description: Auth is the Schema for the auths API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: AuthSpec defines the desired state of Auth - properties: - baseURL: - type: string - debug: - type: boolean - delegatedOIDCServer: - properties: - clientID: - type: string - clientIDFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - clientSecret: - type: string - clientSecretFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - issuer: - type: string - issuerFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - dev: - type: boolean - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container in the - pods of the scaling target - type: string - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of the referent - type: string - kind: - description: 'kind is the kind of the referent; More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - postgres: - properties: - createDatabase: - type: boolean - database: - type: string - databaseFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - createDatabase - type: object - replicas: - default: 1 - format: int32 - type: integer - signingKey: - description: |- - SigningKey is a private key - The signing key is used by the server to sign JWT tokens - The value of this config will be copied to a secret and injected inside - the env vars of the server using secret mapping. - If not specified, a key will be automatically generated. - type: string - staticClients: - items: - properties: - description: - type: string - id: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - secrets: - items: - type: string - type: array - required: - - id - type: object - type: array - version: - default: latest - type: string - required: - - baseURL - - delegatedOIDCServer - - postgres - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.replicas - status: {} diff --git a/components/operator/config/crd/bases/components.formance.com_controls.yaml b/components/operator/config/crd/bases/components.formance.com_controls.yaml deleted file mode 100644 index d82c5a04f4..0000000000 --- a/components/operator/config/crd/bases/components.formance.com_controls.yaml +++ /dev/null @@ -1,1642 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: controls.components.formance.com -spec: - group: components.formance.com - names: - kind: Control - listKind: ControlList - plural: controls - singular: control - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Control is the Schema for the controls API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - apiURLBack: - type: string - apiURLFront: - type: string - auth: - properties: - clientID: - type: string - clientSecret: - type: string - required: - - clientID - - clientSecret - type: object - debug: - type: boolean - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - host: - type: string - path: - type: string - tls: - properties: - secretName: - description: |- - SecretName is the name of the secret used to terminate TLS traffic on - port 443. Field is left optional to allow TLS routing based on SNI - hostname alone. If the SNI host in a listener conflicts with the "Host" - header field used by an IngressRule, the SNI host is used for termination - and value of the Host header is used for routing. - type: string - type: object - required: - - host - - path - type: object - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container in the - pods of the scaling target - type: string - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of the referent - type: string - kind: - description: 'kind is the kind of the referent; More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - replicas: - default: 1 - format: int32 - type: integer - required: - - apiURLBack - - apiURLFront - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - replicas: - format: int32 - type: integer - selector: - type: string - type: object - type: object - served: true - storage: false - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.replicas - status: {} - - name: v1beta2 - schema: - openAPIV3Schema: - description: Control is the Schema for the controls API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ControlSpec defines the desired state of Control - properties: - apiURLBack: - type: string - apiURLFront: - type: string - auth: - properties: - clientId: - type: string - clientSecret: - type: string - required: - - clientId - - clientSecret - type: object - debug: - type: boolean - dev: - type: boolean - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container in the - pods of the scaling target - type: string - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of the referent - type: string - kind: - description: 'kind is the kind of the referent; More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - replicas: - default: 1 - format: int32 - type: integer - version: - default: latest - type: string - required: - - apiURLBack - - apiURLFront - - auth - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.replicas - status: {} diff --git a/components/operator/config/crd/bases/components.formance.com_counterparties.yaml b/components/operator/config/crd/bases/components.formance.com_counterparties.yaml deleted file mode 100644 index 3e099c83d5..0000000000 --- a/components/operator/config/crd/bases/components.formance.com_counterparties.yaml +++ /dev/null @@ -1,543 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: counterparties.components.formance.com -spec: - group: components.formance.com - names: - kind: Counterparties - listKind: CounterpartiesList - plural: counterparties - singular: counterparties - scope: Namespaced - versions: - - name: v1beta2 - schema: - openAPIV3Schema: - description: Counterparties is the Schema for the Counterparties API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: CounterpartiesSpec defines the desired state of Counterparties - properties: - debug: - type: boolean - dev: - type: boolean - enabled: - type: boolean - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - postgres: - properties: - createDatabase: - type: boolean - database: - type: string - databaseFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - createDatabase - type: object - version: - default: latest - type: string - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/config/crd/bases/components.formance.com_ledgers.yaml b/components/operator/config/crd/bases/components.formance.com_ledgers.yaml deleted file mode 100644 index fa83f1a4a8..0000000000 --- a/components/operator/config/crd/bases/components.formance.com_ledgers.yaml +++ /dev/null @@ -1,2584 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: ledgers.components.formance.com -spec: - group: components.formance.com - names: - kind: Ledger - listKind: LedgerList - plural: ledgers - singular: ledger - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Ledger is the Schema for the ledgers API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - auth: - properties: - basic: - properties: - credentials: - additionalProperties: - type: string - type: object - enabled: - type: boolean - type: object - oauth2: - properties: - ProtectedByScopes: - type: boolean - audienceWildcard: - type: boolean - audiences: - items: - type: string - type: array - introspectUrl: - type: string - required: - - introspectUrl - type: object - type: object - collector: - properties: - brokers: - items: - type: string - type: array - brokersFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - sasl: - properties: - mechanism: - type: string - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scramSHASize: - type: string - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - topic: - type: string - required: - - topic - type: object - debug: - type: boolean - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - host: - type: string - path: - type: string - tls: - properties: - secretName: - description: |- - SecretName is the name of the secret used to terminate TLS traffic on - port 443. Field is left optional to allow TLS routing based on SNI - hostname alone. If the SNI host in a listener conflicts with the "Host" - header field used by an IngressRule, the SNI host is used for termination - and value of the Host header is used for routing. - type: string - type: object - required: - - host - - path - type: object - locking: - properties: - redis: - properties: - duration: - description: |- - A Duration represents the elapsed time between two instants - as an int64 nanosecond count. The representation limits the - largest representable duration to approximately 290 years. - format: int64 - type: integer - insecure: - type: boolean - retry: - description: |- - A Duration represents the elapsed time between two instants - as an int64 nanosecond count. The representation limits the - largest representable duration to approximately 290 years. - format: int64 - type: integer - tls: - type: boolean - uri: - type: string - uriFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - strategy: - default: memory - type: string - type: object - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container in the - pods of the scaling target - type: string - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of the referent - type: string - kind: - description: 'kind is the kind of the referent; More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - postgres: - properties: - createDatabase: - type: boolean - database: - type: string - databaseFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - createDatabase - type: object - replicas: - default: 1 - format: int32 - type: integer - required: - - locking - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - replicas: - format: int32 - type: integer - selector: - type: string - type: object - required: - - spec - type: object - served: true - storage: false - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.replicas - status: {} - - name: v1beta2 - schema: - openAPIV3Schema: - description: Ledger is the Schema for the ledgers API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: LedgerSpec defines the desired state of Ledger - properties: - collector: - properties: - brokers: - items: - type: string - type: array - brokersFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - sasl: - properties: - mechanism: - type: string - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scramSHASize: - type: string - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - topic: - type: string - required: - - topic - type: object - debug: - type: boolean - dev: - type: boolean - locking: - properties: - redis: - properties: - duration: - description: |- - A Duration represents the elapsed time between two instants - as an int64 nanosecond count. The representation limits the - largest representable duration to approximately 290 years. - format: int64 - type: integer - insecure: - type: boolean - retry: - description: |- - A Duration represents the elapsed time between two instants - as an int64 nanosecond count. The representation limits the - largest representable duration to approximately 290 years. - format: int64 - type: integer - tls: - type: boolean - uri: - type: string - uriFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - strategy: - default: memory - type: string - type: object - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container in the - pods of the scaling target - type: string - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of the referent - type: string - kind: - description: 'kind is the kind of the referent; More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - postgres: - properties: - createDatabase: - type: boolean - database: - type: string - databaseFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - createDatabase - type: object - replicas: - default: 1 - format: int32 - type: integer - version: - default: latest - type: string - required: - - locking - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.replicas - status: {} diff --git a/components/operator/config/crd/bases/components.formance.com_orchestrations.yaml b/components/operator/config/crd/bases/components.formance.com_orchestrations.yaml deleted file mode 100644 index 776264ac50..0000000000 --- a/components/operator/config/crd/bases/components.formance.com_orchestrations.yaml +++ /dev/null @@ -1,1229 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: orchestrations.components.formance.com -spec: - group: components.formance.com - names: - kind: Orchestration - listKind: OrchestrationList - plural: orchestrations - singular: orchestration - scope: Namespaced - versions: - - name: v1beta2 - schema: - openAPIV3Schema: - description: Orchestration is the Schema for the orchestrations API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: OrchestrationSpec defines the desired state of Orchestration - properties: - auth: - properties: - clientId: - type: string - clientSecret: - type: string - required: - - clientId - - clientSecret - type: object - collector: - properties: - brokers: - items: - type: string - type: array - brokersFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - sasl: - properties: - mechanism: - type: string - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scramSHASize: - type: string - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - topic: - type: string - required: - - topic - type: object - debug: - type: boolean - dev: - type: boolean - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container in the - pods of the scaling target - type: string - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of the referent - type: string - kind: - description: 'kind is the kind of the referent; More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - postgres: - properties: - createDatabase: - type: boolean - database: - type: string - databaseFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - createDatabase - type: object - replicas: - default: 1 - format: int32 - type: integer - stackUrl: - type: string - temporal: - properties: - address: - type: string - namespace: - type: string - taskQueue: - type: string - tls: - properties: - crt: - type: string - key: - type: string - required: - - crt - - key - type: object - required: - - address - - namespace - - taskQueue - - tls - type: object - version: - default: latest - type: string - required: - - auth - - stackUrl - - temporal - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.replicas - status: {} diff --git a/components/operator/config/crd/bases/components.formance.com_payments.yaml b/components/operator/config/crd/bases/components.formance.com_payments.yaml deleted file mode 100644 index ffea40a73e..0000000000 --- a/components/operator/config/crd/bases/components.formance.com_payments.yaml +++ /dev/null @@ -1,1216 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: payments.components.formance.com -spec: - group: components.formance.com - names: - kind: Payments - listKind: PaymentsList - plural: payments - singular: payments - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Payments is the Schema for the payments API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - auth: - properties: - basic: - properties: - credentials: - additionalProperties: - type: string - type: object - enabled: - type: boolean - type: object - oauth2: - properties: - ProtectedByScopes: - type: boolean - audienceWildcard: - type: boolean - audiences: - items: - type: string - type: array - introspectUrl: - type: string - required: - - introspectUrl - type: object - type: object - collector: - properties: - brokers: - items: - type: string - type: array - brokersFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - sasl: - properties: - mechanism: - type: string - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scramSHASize: - type: string - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - topic: - type: string - required: - - topic - type: object - debug: - type: boolean - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - host: - type: string - path: - type: string - tls: - properties: - secretName: - description: |- - SecretName is the name of the secret used to terminate TLS traffic on - port 443. Field is left optional to allow TLS routing based on SNI - hostname alone. If the SNI host in a listener conflicts with the "Host" - header field used by an IngressRule, the SNI host is used for termination - and value of the Host header is used for routing. - type: string - type: object - required: - - host - - path - type: object - mongoDB: - type: object - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - required: - - mongoDB - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: false - subresources: - status: {} - - name: v1beta2 - schema: - openAPIV3Schema: - description: Payments is the Schema for the payments API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: PaymentsSpec defines the desired state of Payments - properties: - collector: - properties: - brokers: - items: - type: string - type: array - brokersFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - sasl: - properties: - mechanism: - type: string - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scramSHASize: - type: string - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - topic: - type: string - required: - - topic - type: object - debug: - type: boolean - dev: - type: boolean - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - postgres: - properties: - createDatabase: - type: boolean - database: - type: string - databaseFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - createDatabase - type: object - version: - default: latest - type: string - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/config/crd/bases/components.formance.com_searches.yaml b/components/operator/config/crd/bases/components.formance.com_searches.yaml deleted file mode 100644 index 6d7ecaf41d..0000000000 --- a/components/operator/config/crd/bases/components.formance.com_searches.yaml +++ /dev/null @@ -1,2459 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: searches.components.formance.com -spec: - group: components.formance.com - names: - kind: Search - listKind: SearchList - plural: searches - singular: search - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Search is the Schema for the searches API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - auth: - properties: - basic: - properties: - credentials: - additionalProperties: - type: string - type: object - enabled: - type: boolean - type: object - oauth2: - properties: - ProtectedByScopes: - type: boolean - audienceWildcard: - type: boolean - audiences: - items: - type: string - type: array - introspectUrl: - type: string - required: - - introspectUrl - type: object - type: object - batching: - properties: - count: - type: integer - period: - type: string - required: - - count - - period - type: object - debug: - type: boolean - elasticsearch: - properties: - basicAuth: - properties: - password: - type: string - username: - type: string - required: - - password - - username - type: object - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - pathPrefix: - type: string - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scheme: - enum: - - http - - https - type: string - tls: - properties: - enabled: - type: boolean - skipCertVerify: - type: boolean - type: object - type: object - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - index: - type: string - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - host: - type: string - path: - type: string - tls: - properties: - secretName: - description: |- - SecretName is the name of the secret used to terminate TLS traffic on - port 443. Field is left optional to allow TLS routing based on SNI - hostname alone. If the SNI host in a listener conflicts with the "Host" - header field used by an IngressRule, the SNI host is used for termination - and value of the Host header is used for routing. - type: string - type: object - required: - - host - - path - type: object - kafka: - properties: - brokers: - items: - type: string - type: array - brokersFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - sasl: - properties: - mechanism: - type: string - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scramSHASize: - type: string - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - type: object - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container in the - pods of the scaling target - type: string - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of the referent - type: string - kind: - description: 'kind is the kind of the referent; More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - replicas: - default: 1 - format: int32 - type: integer - required: - - batching - - elasticsearch - - index - - kafka - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - replicas: - format: int32 - type: integer - selector: - type: string - type: object - type: object - served: true - storage: false - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.replicas - status: {} - - name: v1beta2 - schema: - openAPIV3Schema: - description: Search is the Schema for the searches API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: SearchSpec defines the desired state of Search - properties: - batching: - properties: - count: - type: integer - period: - type: string - required: - - count - - period - type: object - debug: - type: boolean - dev: - type: boolean - elasticsearch: - properties: - basicAuth: - properties: - password: - type: string - username: - type: string - required: - - password - - username - type: object - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - pathPrefix: - type: string - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scheme: - enum: - - http - - https - type: string - tls: - properties: - enabled: - type: boolean - skipCertVerify: - type: boolean - type: object - useZinc: - type: boolean - type: object - index: - type: string - kafka: - properties: - brokers: - items: - type: string - type: array - brokersFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - sasl: - properties: - mechanism: - type: string - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scramSHASize: - type: string - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - type: object - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container in the - pods of the scaling target - type: string - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of the referent - type: string - kind: - description: 'kind is the kind of the referent; More - info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric by name - and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the - selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in question. - type: string - target: - description: target specifies the target value for the given - metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric type - is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the metric - (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - postgres: - properties: - ledger: - properties: - database: - type: string - databaseFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - required: - - ledger - type: object - replicas: - default: 1 - format: int32 - type: integer - version: - default: latest - type: string - required: - - batching - - elasticsearch - - index - - kafka - - postgres - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.replicas - status: {} diff --git a/components/operator/config/crd/bases/components.formance.com_searchingesters.yaml b/components/operator/config/crd/bases/components.formance.com_searchingesters.yaml deleted file mode 100644 index 5760d383fd..0000000000 --- a/components/operator/config/crd/bases/components.formance.com_searchingesters.yaml +++ /dev/null @@ -1,105 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: searchingesters.components.formance.com -spec: - group: components.formance.com - names: - kind: SearchIngester - listKind: SearchIngesterList - plural: searchingesters - singular: searchingester - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: SearchIngester is the Schema for the searchingesters API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - debug: - type: boolean - pipeline: - type: object - x-kubernetes-preserve-unknown-fields: true - reference: - type: string - required: - - pipeline - - reference - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/config/crd/bases/components.formance.com_wallets.yaml b/components/operator/config/crd/bases/components.formance.com_wallets.yaml deleted file mode 100644 index c021a468c8..0000000000 --- a/components/operator/config/crd/bases/components.formance.com_wallets.yaml +++ /dev/null @@ -1,317 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: wallets.components.formance.com -spec: - group: components.formance.com - names: - kind: Wallets - listKind: WalletsList - plural: wallets - singular: wallets - scope: Namespaced - versions: - - name: v1beta2 - schema: - openAPIV3Schema: - description: Wallets is the Schema for the Wallets API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: WalletsSpec defines the desired state of Wallets - properties: - auth: - properties: - clientId: - type: string - clientSecret: - type: string - required: - - clientId - - clientSecret - type: object - debug: - type: boolean - dev: - type: boolean - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - stackUrl: - type: string - version: - default: latest - type: string - required: - - auth - - stackUrl - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/config/crd/bases/components.formance.com_webhooks.yaml b/components/operator/config/crd/bases/components.formance.com_webhooks.yaml deleted file mode 100644 index a08fd37f0a..0000000000 --- a/components/operator/config/crd/bases/components.formance.com_webhooks.yaml +++ /dev/null @@ -1,1216 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: webhooks.components.formance.com -spec: - group: components.formance.com - names: - kind: Webhooks - listKind: WebhooksList - plural: webhooks - singular: webhooks - scope: Namespaced - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Webhooks is the Schema for the Webhooks API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - auth: - properties: - basic: - properties: - credentials: - additionalProperties: - type: string - type: object - enabled: - type: boolean - type: object - oauth2: - properties: - ProtectedByScopes: - type: boolean - audienceWildcard: - type: boolean - audiences: - items: - type: string - type: array - introspectUrl: - type: string - required: - - introspectUrl - type: object - type: object - collector: - properties: - brokers: - items: - type: string - type: array - brokersFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - sasl: - properties: - mechanism: - type: string - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scramSHASize: - type: string - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - topic: - type: string - required: - - topic - type: object - debug: - type: boolean - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - host: - type: string - path: - type: string - tls: - properties: - secretName: - description: |- - SecretName is the name of the secret used to terminate TLS traffic on - port 443. Field is left optional to allow TLS routing based on SNI - hostname alone. If the SNI host in a listener conflicts with the "Host" - header field used by an IngressRule, the SNI host is used for termination - and value of the Host header is used for routing. - type: string - type: object - required: - - host - - path - type: object - mongoDB: - type: object - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: false - subresources: - status: {} - - name: v1beta2 - schema: - openAPIV3Schema: - description: Webhooks is the Schema for the Webhooks API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: WebhooksSpec defines the desired state of Webhooks - properties: - collector: - properties: - brokers: - items: - type: string - type: array - brokersFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - sasl: - properties: - mechanism: - type: string - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scramSHASize: - type: string - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - topic: - type: string - required: - - topic - type: object - debug: - type: boolean - dev: - type: boolean - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - postgres: - properties: - createDatabase: - type: boolean - database: - type: string - databaseFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - createDatabase - type: object - version: - default: latest - type: string - required: - - collector - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/config/crd/bases/stack.formance.com_configurations.yaml b/components/operator/config/crd/bases/stack.formance.com_configurations.yaml deleted file mode 100644 index f58f727e50..0000000000 --- a/components/operator/config/crd/bases/stack.formance.com_configurations.yaml +++ /dev/null @@ -1,4877 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: configurations.stack.formance.com -spec: - group: stack.formance.com - names: - kind: Configuration - listKind: ConfigurationList - plural: configurations - singular: configuration - scope: Cluster - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Configuration is the Schema for the configurations API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - auth: - properties: - delegatedOIDCServer: - properties: - clientID: - type: string - clientSecret: - type: string - issuer: - type: string - type: object - host: - type: string - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - scheme: - type: string - signingKey: - type: string - type: object - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - tls: - properties: - secretName: - description: |- - SecretName is the name of the secret used to terminate TLS traffic on - port 443. Field is left optional to allow TLS routing based on SNI - hostname alone. If the SNI host in a listener conflicts with the "Host" - header field used by an IngressRule, the SNI host is used for termination - and value of the Host header is used for routing. - type: string - type: object - type: object - kafka: - properties: - brokers: - items: - type: string - type: array - sasl: - properties: - mechanism: - type: string - password: - type: string - scramSHASize: - type: string - username: - type: string - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - required: - - brokers - type: object - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - services: - properties: - control: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - ledger: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container - in the pods of the scaling target - type: string - name: - description: name is the name of the resource in - question. - type: string - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of - the referent - type: string - kind: - description: 'kind is the kind of the referent; - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in - question. - type: string - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - replicas: - default: 1 - format: int32 - type: integer - type: object - payments: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - mongoDB: - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - search: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - webhooks: - properties: - debug: - type: boolean - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - mongoDB: - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - type: object - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: false - subresources: - status: {} - - name: v1beta2 - schema: - openAPIV3Schema: - description: Configuration is the Schema for the configurations API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - tls: - properties: - secretName: - description: |- - SecretName is the name of the secret used to terminate TLS traffic on - port 443. Field is left optional to allow TLS routing based on SNI - hostname alone. If the SNI host in a listener conflicts with the "Host" - header field used by an IngressRule, the SNI host is used for termination - and value of the Host header is used for routing. - type: string - type: object - type: object - kafka: - properties: - brokers: - items: - type: string - type: array - brokersFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - sasl: - properties: - mechanism: - type: string - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scramSHASize: - type: string - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - type: object - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - services: - properties: - auth: - properties: - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - staticClients: - items: - properties: - description: - type: string - id: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - secrets: - items: - type: string - type: array - required: - - id - type: object - type: array - required: - - postgres - type: object - control: - properties: - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - counterparties: - properties: - debug: - type: boolean - enabled: - type: boolean - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - ledger: - properties: - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - locking: - properties: - redis: - properties: - duration: - description: |- - A Duration represents the elapsed time between two instants - as an int64 nanosecond count. The representation limits the - largest representable duration to approximately 290 years. - format: int64 - type: integer - insecure: - type: boolean - retry: - description: |- - A Duration represents the elapsed time between two instants - as an int64 nanosecond count. The representation limits the - largest representable duration to approximately 290 years. - format: int64 - type: integer - tls: - type: boolean - uri: - type: string - uriFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the - pod's namespace - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - strategy: - default: memory - type: string - type: object - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container - in the pods of the scaling target - type: string - name: - description: name is the name of the resource in - question. - type: string - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of - the referent - type: string - kind: - description: 'kind is the kind of the referent; - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in - question. - type: string - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - replicas: - default: 1 - format: int32 - type: integer - required: - - postgres - type: object - orchestration: - properties: - debug: - type: boolean - dev: - type: boolean - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - payments: - properties: - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - search: - properties: - batching: - properties: - count: - type: integer - period: - type: string - required: - - count - - period - type: object - elasticSearch: - properties: - basicAuth: - properties: - password: - type: string - username: - type: string - required: - - password - - username - type: object - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - pathPrefix: - type: string - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scheme: - enum: - - http - - https - type: string - tls: - properties: - enabled: - type: boolean - skipCertVerify: - type: boolean - type: object - useZinc: - type: boolean - type: object - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - required: - - elasticSearch - type: object - wallets: - properties: - debug: - type: boolean - dev: - type: boolean - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - webhooks: - properties: - debug: - type: boolean - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - type: object - temporal: - properties: - address: - type: string - namespace: - type: string - tls: - properties: - crt: - type: string - key: - type: string - required: - - crt - - key - type: object - required: - - address - - namespace - - tls - type: object - required: - - kafka - - services - - temporal - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: false - subresources: - status: {} - - name: v1beta3 - schema: - openAPIV3Schema: - description: Configuration is the Schema for the configurations API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - auth: - properties: - checkScopes: - type: boolean - readKeySetMaxRetries: - type: integer - type: object - broker: - properties: - kafka: - properties: - brokers: - items: - type: string - type: array - sasl: - properties: - mechanism: - type: string - password: - type: string - scramSHASize: - type: string - username: - type: string - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - required: - - brokers - type: object - nats: - properties: - replicas: - default: 3 - type: integer - url: - type: string - required: - - url - type: object - type: object - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - tls: - properties: - secretName: - description: |- - SecretName is the name of the secret used to terminate TLS traffic on - port 443. Field is left optional to allow TLS routing based on SNI - hostname alone. If the SNI host in a listener conflicts with the "Host" - header field used by an IngressRule, the SNI host is used for termination - and value of the Host header is used for routing. - type: string - type: object - type: object - light: - description: LightMode is experimental and indicate we want monopods - type: boolean - monitoring: - properties: - metrics: - properties: - otlp: - properties: - endpoint: - type: string - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - resourceAttributes: - type: string - type: object - type: object - traces: - properties: - otlp: - properties: - endpoint: - type: string - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - resourceAttributes: - type: string - type: object - type: object - type: object - registries: - additionalProperties: - properties: - endpoint: - type: string - required: - - endpoint - type: object - type: object - services: - description: |- - ConfigurationServicesSpec define all existing services for a stack. - Fields order is important. - For example, auth must be defined later as other services create static auth clients which must be used by auth. - properties: - auth: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - postgres: - properties: - credentialsFromSecret: - type: string - debug: - type: boolean - disableSSLMode: - type: boolean - host: - type: string - password: - type: string - port: - type: integer - username: - type: string - required: - - host - - port - type: object - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - staticClients: - items: - properties: - description: - type: string - id: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - secrets: - items: - type: string - type: array - required: - - id - type: object - type: array - required: - - postgres - type: object - control: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - type: object - gateway: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - enableAuditPlugin: - type: boolean - enableScopes: - type: boolean - fallback: - type: string - livenessEndpoint: - type: string - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - type: object - ledger: - properties: - allowPastTimestamps: - type: boolean - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - deploymentStrategy: - type: string - dev: - type: boolean - disabled: - type: boolean - locking: - properties: - redis: - properties: - duration: - description: |- - A Duration represents the elapsed time between two instants - as an int64 nanosecond count. The representation limits the - largest representable duration to approximately 290 years. - format: int64 - type: integer - insecure: - type: boolean - retry: - description: |- - A Duration represents the elapsed time between two instants - as an int64 nanosecond count. The representation limits the - largest representable duration to approximately 290 years. - format: int64 - type: integer - tls: - type: boolean - uri: - type: string - type: object - strategy: - default: memory - type: string - type: object - postgres: - properties: - credentialsFromSecret: - type: string - debug: - type: boolean - disableSSLMode: - type: boolean - host: - type: string - password: - type: string - port: - type: integer - username: - type: string - required: - - host - - port - type: object - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - required: - - postgres - type: object - orchestration: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - postgres: - properties: - credentialsFromSecret: - type: string - debug: - type: boolean - disableSSLMode: - type: boolean - host: - type: string - password: - type: string - port: - type: integer - username: - type: string - required: - - host - - port - type: object - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - required: - - postgres - type: object - payments: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - encryptionKey: - type: string - postgres: - properties: - credentialsFromSecret: - type: string - debug: - type: boolean - disableSSLMode: - type: boolean - host: - type: string - password: - type: string - port: - type: integer - username: - type: string - required: - - host - - port - type: object - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - required: - - encryptionKey - - postgres - type: object - reconciliation: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - postgres: - properties: - credentialsFromSecret: - type: string - debug: - type: boolean - disableSSLMode: - type: boolean - host: - type: string - password: - type: string - port: - type: integer - username: - type: string - required: - - host - - port - type: object - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - required: - - postgres - type: object - search: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - batching: - properties: - count: - type: integer - period: - type: string - required: - - count - - period - type: object - benthosResourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - elasticSearch: - properties: - basicAuth: - properties: - password: - type: string - secretName: - type: string - username: - type: string - type: object - host: - type: string - pathPrefix: - type: string - port: - type: integer - scheme: - enum: - - http - - https - type: string - tls: - properties: - enabled: - type: boolean - skipCertVerify: - type: boolean - type: object - useZinc: - type: boolean - type: object - searchResourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - required: - - elasticSearch - type: object - stargate: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - type: object - wallets: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - type: object - webhooks: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - postgres: - properties: - credentialsFromSecret: - type: string - debug: - type: boolean - disableSSLMode: - type: boolean - host: - type: string - password: - type: string - port: - type: integer - username: - type: string - required: - - host - - port - type: object - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - required: - - postgres - type: object - type: object - temporal: - properties: - address: - type: string - namespace: - type: string - tls: - description: 'TODO: Handle validation' - properties: - crt: - type: string - key: - type: string - secretName: - type: string - type: object - required: - - address - - namespace - type: object - required: - - broker - - services - - temporal - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/config/crd/bases/stack.formance.com_licenses.yaml b/components/operator/config/crd/bases/stack.formance.com_licenses.yaml deleted file mode 100644 index af30ca50a8..0000000000 --- a/components/operator/config/crd/bases/stack.formance.com_licenses.yaml +++ /dev/null @@ -1,52 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: licenses.stack.formance.com -spec: - group: stack.formance.com - names: - kind: License - listKind: LicenseList - plural: licenses - singular: license - scope: Cluster - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: License is the Schema for the licenses API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: LicenseSpec defines the desired state of License - properties: - licenceId: - type: string - type: object - status: - description: LicenseStatus defines the observed state of License - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/config/crd/bases/stack.formance.com_migrations.yaml b/components/operator/config/crd/bases/stack.formance.com_migrations.yaml deleted file mode 100644 index 9551d6911f..0000000000 --- a/components/operator/config/crd/bases/stack.formance.com_migrations.yaml +++ /dev/null @@ -1,84 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: migrations.stack.formance.com -spec: - group: stack.formance.com - names: - kind: Migration - listKind: MigrationList - plural: migrations - singular: migration - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.terminated - name: Terminated - type: string - - description: The migration error - jsonPath: .status.error - name: Error - type: string - name: v1beta3 - schema: - openAPIV3Schema: - description: Migration is the Schema for the migrations API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: MigrationSpec defines the desired state of Migration - properties: - configuration: - type: string - currentVersion: - type: string - module: - type: string - postUpgrade: - type: boolean - targetedVersion: - type: string - version: - type: string - required: - - configuration - - currentVersion - - module - - postUpgrade - - targetedVersion - - version - type: object - status: - description: MigrationStatus defines the observed state of Migration - properties: - error: - type: string - terminated: - type: boolean - required: - - terminated - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/config/crd/bases/stack.formance.com_stacks.yaml b/components/operator/config/crd/bases/stack.formance.com_stacks.yaml deleted file mode 100644 index 4a8f4482bc..0000000000 --- a/components/operator/config/crd/bases/stack.formance.com_stacks.yaml +++ /dev/null @@ -1,2066 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: stacks.stack.formance.com -spec: - group: stack.formance.com - names: - kind: Stack - listKind: StackList - plural: stacks - singular: stack - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.progress - name: Status - type: string - - description: Stack Version - jsonPath: .spec.version - name: Version - type: string - - description: Stack Namespace - jsonPath: .spec.namespace - name: Namespace - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: Stack is the Schema for the stacks API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: StackSpec defines the desired state of Stack - properties: - auth: - properties: - delegatedOIDCServer: - properties: - clientID: - type: string - clientSecret: - type: string - issuer: - type: string - type: object - host: - type: string - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - scheme: - type: string - signingKey: - type: string - type: object - debug: - type: boolean - host: - type: string - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - tls: - properties: - secretName: - description: |- - SecretName is the name of the secret used to terminate TLS traffic on - port 443. Field is left optional to allow TLS routing based on SNI - hostname alone. If the SNI host in a listener conflicts with the "Host" - header field used by an IngressRule, the SNI host is used for termination - and value of the Host header is used for routing. - type: string - type: object - type: object - kafka: - properties: - brokers: - items: - type: string - type: array - sasl: - properties: - mechanism: - type: string - password: - type: string - scramSHASize: - type: string - username: - type: string - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - required: - - brokers - type: object - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - namespace: - type: string - scheme: - type: string - seed: - type: string - services: - properties: - control: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - ledger: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container - in the pods of the scaling target - type: string - name: - description: name is the name of the resource in - question. - type: string - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of - the referent - type: string - kind: - description: 'kind is the kind of the referent; - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in - question. - type: string - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - replicas: - default: 1 - format: int32 - type: integer - type: object - payments: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - mongoDB: - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - search: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - webhooks: - properties: - debug: - type: boolean - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - mongoDB: - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - type: object - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .status.progress - name: Status - type: string - - description: Stack Version - jsonPath: .spec.versions - name: Version - type: string - - description: Stack Configuration - jsonPath: .spec.seed - name: Configuration - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: Stack is the Schema for the stacks API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: StackSpec defines the desired state of Stack - properties: - auth: - properties: - delegatedOIDCServer: - properties: - clientID: - type: string - clientIDFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - clientSecret: - type: string - clientSecretFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - issuer: - type: string - issuerFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - staticClients: - items: - properties: - description: - type: string - id: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - secrets: - items: - type: string - type: array - required: - - id - type: object - type: array - required: - - delegatedOIDCServer - type: object - debug: - type: boolean - dev: - type: boolean - host: - type: string - scheme: - default: http - type: string - seed: - type: string - versions: - type: string - required: - - auth - - host - - seed - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - staticAuthClients: - additionalProperties: - properties: - description: - type: string - id: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - secrets: - items: - type: string - type: array - required: - - id - type: object - type: object - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: Stack Disabled - jsonPath: .spec.disabled - name: Disable - type: string - - description: Stack Version - jsonPath: .spec.versions - name: Version - type: string - - description: Stack Configuration - jsonPath: .spec.seed - name: Configuration - type: string - name: v1beta3 - schema: - openAPIV3Schema: - description: Stack is the Schema for the stacks API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: StackSpec defines the desired state of Stack - properties: - auth: - properties: - delegatedOIDCServer: - properties: - clientID: - type: string - clientSecret: - type: string - issuer: - type: string - type: object - staticClients: - items: - properties: - description: - type: string - id: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - secrets: - items: - type: string - type: array - required: - - id - type: object - type: array - required: - - delegatedOIDCServer - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - host: - type: string - scheme: - default: http - type: string - seed: - type: string - services: - properties: - control: - properties: - disabled: - type: boolean - type: object - ledger: - properties: - disabled: - type: boolean - type: object - orchestration: - properties: - disabled: - type: boolean - type: object - payments: - properties: - disabled: - type: boolean - type: object - reconciliation: - properties: - disabled: - type: boolean - type: object - wallets: - properties: - disabled: - type: boolean - type: object - webhooks: - properties: - disabled: - type: boolean - type: object - type: object - stargate: - properties: - stargateServerURL: - type: string - required: - - stargateServerURL - type: object - versions: - type: string - required: - - auth - - host - - seed - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - error: - type: string - light: - type: boolean - ports: - additionalProperties: - additionalProperties: - format: int32 - type: integer - type: object - type: object - ready: - type: boolean - staticAuthClients: - additionalProperties: - properties: - description: - type: string - id: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - secrets: - items: - type: string - type: array - required: - - id - type: object - type: object - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/config/crd/bases/stack.formance.com_versions.yaml b/components/operator/config/crd/bases/stack.formance.com_versions.yaml deleted file mode 100644 index 4ce54d3b1e..0000000000 --- a/components/operator/config/crd/bases/stack.formance.com_versions.yaml +++ /dev/null @@ -1,124 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - name: versions.stack.formance.com -spec: - group: stack.formance.com - names: - kind: Versions - listKind: VersionsList - plural: versions - singular: versions - scope: Cluster - versions: - - name: v1beta2 - schema: - openAPIV3Schema: - description: Versions is the Schema for the versions API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: VersionsSpec defines the desired state of Versions - properties: - auth: - type: string - control: - type: string - counterparties: - type: string - ledger: - type: string - orchestration: - type: string - payments: - type: string - search: - type: string - wallets: - type: string - webhooks: - type: string - type: object - status: - description: VersionsStatus defines the observed state of Versions - type: object - type: object - served: true - storage: false - subresources: - status: {} - - name: v1beta3 - schema: - openAPIV3Schema: - description: Versions is the Schema for the versions API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: VersionsSpec defines the desired state of Versions - properties: - auth: - type: string - control: - type: string - gateway: - type: string - ledger: - type: string - orchestration: - type: string - payments: - type: string - reconciliation: - type: string - search: - type: string - stargate: - type: string - wallets: - type: string - webhooks: - type: string - type: object - status: - description: VersionsStatus defines the observed state of Versions - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/config/crd/kustomization.yaml b/components/operator/config/crd/kustomization.yaml index be51257d7d..126bc6398a 100644 --- a/components/operator/config/crd/kustomization.yaml +++ b/components/operator/config/crd/kustomization.yaml @@ -2,10 +2,6 @@ # since it depends on service name and namespace that are out of this kustomize package. # It should be run by config/default resources: - - bases/stack.formance.com_stacks.yaml - - bases/stack.formance.com_configurations.yaml - - bases/stack.formance.com_versions.yaml - - bases/stack.formance.com_migrations.yaml - bases/formance.com_databases.yaml - bases/formance.com_stacks.yaml - bases/formance.com_brokertopics.yaml diff --git a/components/operator/config/rbac/role.yaml b/components/operator/config/rbac/role.yaml index 2620f405d4..0fe054036e 100644 --- a/components/operator/config/rbac/role.yaml +++ b/components/operator/config/rbac/role.yaml @@ -761,107 +761,3 @@ rules: - patch - update - watch -- apiGroups: - - stack.formance.com - resources: - - configurations - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.formance.com - resources: - - configurations/finalizers - verbs: - - update -- apiGroups: - - stack.formance.com - resources: - - configurations/status - verbs: - - get - - patch - - update -- apiGroups: - - stack.formance.com - resources: - - migrations - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.formance.com - resources: - - migrations/finalizers - verbs: - - update -- apiGroups: - - stack.formance.com - resources: - - migrations/status - verbs: - - get - - patch - - update -- apiGroups: - - stack.formance.com - resources: - - stacks - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.formance.com - resources: - - stacks/finalizers - verbs: - - update -- apiGroups: - - stack.formance.com - resources: - - stacks/status - verbs: - - get - - patch - - update -- apiGroups: - - stack.formance.com - resources: - - versions - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.formance.com - resources: - - versions/finalizers - verbs: - - update -- apiGroups: - - stack.formance.com - resources: - - versions/status - verbs: - - get - - patch - - update diff --git a/components/operator/config/samples/stack.formance.com_v1beta3_configuration.yaml b/components/operator/config/samples/stack.formance.com_v1beta3_configuration.yaml deleted file mode 100644 index 1310488843..0000000000 --- a/components/operator/config/samples/stack.formance.com_v1beta3_configuration.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: stack.formance.com/v1beta3 -kind: Configuration -metadata: - labels: - app.kubernetes.io/name: configuration - app.kubernetes.io/instance: configuration-sample - app.kubernetes.io/part-of: operatorv2 - app.kubernetes.io/managed-by: kustomize - app.kubernetes.io/created-by: operatorv2 - name: configuration-sample -spec: {} diff --git a/components/operator/config/samples/stack.formance.com_v1beta3_stack.yaml b/components/operator/config/samples/stack.formance.com_v1beta3_stack.yaml deleted file mode 100644 index 9308c60442..0000000000 --- a/components/operator/config/samples/stack.formance.com_v1beta3_stack.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: stack.formance.com/v1beta3 -kind: Stack -metadata: - labels: - app.kubernetes.io/name: stack - app.kubernetes.io/instance: stack-sample - app.kubernetes.io/part-of: operatorv2 - app.kubernetes.io/managed-by: kustomize - app.kubernetes.io/created-by: operatorv2 - name: stack-sample -spec: {} diff --git a/components/operator/config/samples/stack.formance.com_v1beta3_versions.yaml b/components/operator/config/samples/stack.formance.com_v1beta3_versions.yaml deleted file mode 100644 index 0d3096171a..0000000000 --- a/components/operator/config/samples/stack.formance.com_v1beta3_versions.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: stack.formance.com/v1beta3 -kind: Versions -metadata: - labels: - app.kubernetes.io/name: versions - app.kubernetes.io/instance: versions-sample - app.kubernetes.io/part-of: operatorv2 - app.kubernetes.io/managed-by: kustomize - app.kubernetes.io/created-by: operatorv2 - name: versions-sample -spec: {} diff --git a/components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_configurations.stack.formance.com.yaml b/components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_configurations.stack.formance.com.yaml deleted file mode 100644 index 40490cc3b3..0000000000 --- a/components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_configurations.stack.formance.com.yaml +++ /dev/null @@ -1,4877 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - helm.sh/resource-policy: keep - name: configurations.stack.formance.com -spec: - group: stack.formance.com - names: - kind: Configuration - listKind: ConfigurationList - plural: configurations - singular: configuration - scope: Cluster - versions: - - name: v1beta1 - schema: - openAPIV3Schema: - description: Configuration is the Schema for the configurations API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - auth: - properties: - delegatedOIDCServer: - properties: - clientID: - type: string - clientSecret: - type: string - issuer: - type: string - type: object - host: - type: string - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - scheme: - type: string - signingKey: - type: string - type: object - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - tls: - properties: - secretName: - description: |- - SecretName is the name of the secret used to terminate TLS traffic on - port 443. Field is left optional to allow TLS routing based on SNI - hostname alone. If the SNI host in a listener conflicts with the "Host" - header field used by an IngressRule, the SNI host is used for termination - and value of the Host header is used for routing. - type: string - type: object - type: object - kafka: - properties: - brokers: - items: - type: string - type: array - sasl: - properties: - mechanism: - type: string - password: - type: string - scramSHASize: - type: string - username: - type: string - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - required: - - brokers - type: object - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - services: - properties: - control: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - ledger: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container - in the pods of the scaling target - type: string - name: - description: name is the name of the resource in - question. - type: string - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of - the referent - type: string - kind: - description: 'kind is the kind of the referent; - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in - question. - type: string - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - replicas: - default: 1 - format: int32 - type: integer - type: object - payments: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - mongoDB: - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - search: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - webhooks: - properties: - debug: - type: boolean - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - mongoDB: - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - type: object - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: false - subresources: - status: {} - - name: v1beta2 - schema: - openAPIV3Schema: - description: Configuration is the Schema for the configurations API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - tls: - properties: - secretName: - description: |- - SecretName is the name of the secret used to terminate TLS traffic on - port 443. Field is left optional to allow TLS routing based on SNI - hostname alone. If the SNI host in a listener conflicts with the "Host" - header field used by an IngressRule, the SNI host is used for termination - and value of the Host header is used for routing. - type: string - type: object - type: object - kafka: - properties: - brokers: - items: - type: string - type: array - brokersFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key must - be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - sasl: - properties: - mechanism: - type: string - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scramSHASize: - type: string - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - type: object - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - services: - properties: - auth: - properties: - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - staticClients: - items: - properties: - description: - type: string - id: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - secrets: - items: - type: string - type: array - required: - - id - type: object - type: array - required: - - postgres - type: object - control: - properties: - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - counterparties: - properties: - debug: - type: boolean - enabled: - type: boolean - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - ledger: - properties: - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - locking: - properties: - redis: - properties: - duration: - description: |- - A Duration represents the elapsed time between two instants - as an int64 nanosecond count. The representation limits the - largest representable duration to approximately 290 years. - format: int64 - type: integer - insecure: - type: boolean - retry: - description: |- - A Duration represents the elapsed time between two instants - as an int64 nanosecond count. The representation limits the - largest representable duration to approximately 290 years. - format: int64 - type: integer - tls: - type: boolean - uri: - type: string - uriFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the - pod's namespace - properties: - key: - description: The key of the secret to select - from. Must be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - strategy: - default: memory - type: string - type: object - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container - in the pods of the scaling target - type: string - name: - description: name is the name of the resource in - question. - type: string - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of - the referent - type: string - kind: - description: 'kind is the kind of the referent; - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in - question. - type: string - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - replicas: - default: 1 - format: int32 - type: integer - required: - - postgres - type: object - orchestration: - properties: - debug: - type: boolean - dev: - type: boolean - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - payments: - properties: - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - search: - properties: - batching: - properties: - count: - type: integer - period: - type: string - required: - - count - - period - type: object - elasticSearch: - properties: - basicAuth: - properties: - password: - type: string - username: - type: string - required: - - password - - username - type: object - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - pathPrefix: - type: string - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - scheme: - enum: - - http - - https - type: string - tls: - properties: - enabled: - type: boolean - skipCertVerify: - type: boolean - type: object - useZinc: - type: boolean - type: object - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - required: - - elasticSearch - type: object - wallets: - properties: - debug: - type: boolean - dev: - type: boolean - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - webhooks: - properties: - debug: - type: boolean - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - type: object - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - type: object - temporal: - properties: - address: - type: string - namespace: - type: string - tls: - properties: - crt: - type: string - key: - type: string - required: - - crt - - key - type: object - required: - - address - - namespace - - tls - type: object - required: - - kafka - - services - - temporal - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: false - subresources: - status: {} - - name: v1beta3 - schema: - openAPIV3Schema: - description: Configuration is the Schema for the configurations API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - properties: - auth: - properties: - checkScopes: - type: boolean - readKeySetMaxRetries: - type: integer - type: object - broker: - properties: - kafka: - properties: - brokers: - items: - type: string - type: array - sasl: - properties: - mechanism: - type: string - password: - type: string - scramSHASize: - type: string - username: - type: string - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - required: - - brokers - type: object - nats: - properties: - replicas: - default: 3 - type: integer - url: - type: string - required: - - url - type: object - type: object - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - tls: - properties: - secretName: - description: |- - SecretName is the name of the secret used to terminate TLS traffic on - port 443. Field is left optional to allow TLS routing based on SNI - hostname alone. If the SNI host in a listener conflicts with the "Host" - header field used by an IngressRule, the SNI host is used for termination - and value of the Host header is used for routing. - type: string - type: object - type: object - light: - description: LightMode is experimental and indicate we want monopods - type: boolean - monitoring: - properties: - metrics: - properties: - otlp: - properties: - endpoint: - type: string - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - resourceAttributes: - type: string - type: object - type: object - traces: - properties: - otlp: - properties: - endpoint: - type: string - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - resourceAttributes: - type: string - type: object - type: object - type: object - registries: - additionalProperties: - properties: - endpoint: - type: string - required: - - endpoint - type: object - type: object - services: - description: |- - ConfigurationServicesSpec define all existing services for a stack. - Fields order is important. - For example, auth must be defined later as other services create static auth clients which must be used by auth. - properties: - auth: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - postgres: - properties: - credentialsFromSecret: - type: string - debug: - type: boolean - disableSSLMode: - type: boolean - host: - type: string - password: - type: string - port: - type: integer - username: - type: string - required: - - host - - port - type: object - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - staticClients: - items: - properties: - description: - type: string - id: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - secrets: - items: - type: string - type: array - required: - - id - type: object - type: array - required: - - postgres - type: object - control: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - type: object - gateway: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - enableAuditPlugin: - type: boolean - enableScopes: - type: boolean - fallback: - type: string - livenessEndpoint: - type: string - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - type: object - ledger: - properties: - allowPastTimestamps: - type: boolean - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - deploymentStrategy: - type: string - dev: - type: boolean - disabled: - type: boolean - locking: - properties: - redis: - properties: - duration: - description: |- - A Duration represents the elapsed time between two instants - as an int64 nanosecond count. The representation limits the - largest representable duration to approximately 290 years. - format: int64 - type: integer - insecure: - type: boolean - retry: - description: |- - A Duration represents the elapsed time between two instants - as an int64 nanosecond count. The representation limits the - largest representable duration to approximately 290 years. - format: int64 - type: integer - tls: - type: boolean - uri: - type: string - type: object - strategy: - default: memory - type: string - type: object - postgres: - properties: - credentialsFromSecret: - type: string - debug: - type: boolean - disableSSLMode: - type: boolean - host: - type: string - password: - type: string - port: - type: integer - username: - type: string - required: - - host - - port - type: object - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - required: - - postgres - type: object - orchestration: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - postgres: - properties: - credentialsFromSecret: - type: string - debug: - type: boolean - disableSSLMode: - type: boolean - host: - type: string - password: - type: string - port: - type: integer - username: - type: string - required: - - host - - port - type: object - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - required: - - postgres - type: object - payments: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - encryptionKey: - type: string - postgres: - properties: - credentialsFromSecret: - type: string - debug: - type: boolean - disableSSLMode: - type: boolean - host: - type: string - password: - type: string - port: - type: integer - username: - type: string - required: - - host - - port - type: object - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - required: - - encryptionKey - - postgres - type: object - reconciliation: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - postgres: - properties: - credentialsFromSecret: - type: string - debug: - type: boolean - disableSSLMode: - type: boolean - host: - type: string - password: - type: string - port: - type: integer - username: - type: string - required: - - host - - port - type: object - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - required: - - postgres - type: object - search: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - batching: - properties: - count: - type: integer - period: - type: string - required: - - count - - period - type: object - benthosResourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - elasticSearch: - properties: - basicAuth: - properties: - password: - type: string - secretName: - type: string - username: - type: string - type: object - host: - type: string - pathPrefix: - type: string - port: - type: integer - scheme: - enum: - - http - - https - type: string - tls: - properties: - enabled: - type: boolean - skipCertVerify: - type: boolean - type: object - useZinc: - type: boolean - type: object - searchResourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - required: - - elasticSearch - type: object - stargate: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - type: object - wallets: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - type: object - webhooks: - properties: - annotations: - properties: - service: - additionalProperties: - type: string - type: object - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - postgres: - properties: - credentialsFromSecret: - type: string - debug: - type: boolean - disableSSLMode: - type: boolean - host: - type: string - password: - type: string - port: - type: integer - username: - type: string - required: - - host - - port - type: object - resourceProperties: - properties: - limits: - properties: - cpu: - type: string - memory: - type: string - type: object - request: - properties: - cpu: - type: string - memory: - type: string - type: object - type: object - required: - - postgres - type: object - type: object - temporal: - properties: - address: - type: string - namespace: - type: string - tls: - description: 'TODO: Handle validation' - properties: - crt: - type: string - key: - type: string - secretName: - type: string - type: object - required: - - address - - namespace - type: object - required: - - broker - - services - - temporal - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_migrations.stack.formance.com.yaml b/components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_migrations.stack.formance.com.yaml deleted file mode 100644 index 029f7a9c25..0000000000 --- a/components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_migrations.stack.formance.com.yaml +++ /dev/null @@ -1,84 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - helm.sh/resource-policy: keep - name: migrations.stack.formance.com -spec: - group: stack.formance.com - names: - kind: Migration - listKind: MigrationList - plural: migrations - singular: migration - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.terminated - name: Terminated - type: string - - description: The migration error - jsonPath: .status.error - name: Error - type: string - name: v1beta3 - schema: - openAPIV3Schema: - description: Migration is the Schema for the migrations API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: MigrationSpec defines the desired state of Migration - properties: - configuration: - type: string - currentVersion: - type: string - module: - type: string - postUpgrade: - type: boolean - targetedVersion: - type: string - version: - type: string - required: - - configuration - - currentVersion - - module - - postUpgrade - - targetedVersion - - version - type: object - status: - description: MigrationStatus defines the observed state of Migration - properties: - error: - type: string - terminated: - type: boolean - required: - - terminated - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_stacks.stack.formance.com.yaml b/components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_stacks.stack.formance.com.yaml deleted file mode 100644 index a485241f11..0000000000 --- a/components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_stacks.stack.formance.com.yaml +++ /dev/null @@ -1,2066 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - helm.sh/resource-policy: keep - name: stacks.stack.formance.com -spec: - group: stack.formance.com - names: - kind: Stack - listKind: StackList - plural: stacks - singular: stack - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.progress - name: Status - type: string - - description: Stack Version - jsonPath: .spec.version - name: Version - type: string - - description: Stack Namespace - jsonPath: .spec.namespace - name: Namespace - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: Stack is the Schema for the stacks API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: StackSpec defines the desired state of Stack - properties: - auth: - properties: - delegatedOIDCServer: - properties: - clientID: - type: string - clientSecret: - type: string - issuer: - type: string - type: object - host: - type: string - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - scheme: - type: string - signingKey: - type: string - type: object - debug: - type: boolean - host: - type: string - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - tls: - properties: - secretName: - description: |- - SecretName is the name of the secret used to terminate TLS traffic on - port 443. Field is left optional to allow TLS routing based on SNI - hostname alone. If the SNI host in a listener conflicts with the "Host" - header field used by an IngressRule, the SNI host is used for termination - and value of the Host header is used for routing. - type: string - type: object - type: object - kafka: - properties: - brokers: - items: - type: string - type: array - sasl: - properties: - mechanism: - type: string - password: - type: string - scramSHASize: - type: string - username: - type: string - required: - - mechanism - - scramSHASize - type: object - tls: - type: boolean - required: - - brokers - type: object - monitoring: - properties: - traces: - properties: - otlp: - properties: - endpoint: - type: string - endpointFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - insecure: - type: boolean - mode: - enum: - - grpc - - http - type: string - port: - format: int32 - type: integer - portFrom: - description: EnvVarSource represents a source for the - value of an EnvVar. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema the FieldPath - is written in terms of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output format of the - exposed resources, defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - resourceAttributes: - type: string - type: object - type: object - type: object - namespace: - type: string - scheme: - type: string - seed: - type: string - services: - properties: - control: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - ledger: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - maxReplicas: - default: 10 - description: |- - upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. - If not specified, the default will be 10 - format: int32 - type: integer - metrics: - description: |- - metrics contains the specifications for which to use to calculate the - desired replica count (the maximum replica count across all metrics will - be used). The desired replica count is calculated multiplying the - ratio between the target value and the current value by the current - number of pods. Ergo, metrics used must decrease as the pod count is - increased, and vice-versa. See the individual metric source types for - more information about how each type of metric must respond. - items: - description: |- - MetricSpec specifies how to scale based on a single metric - (only `type` and one other matching field should be set at once). - properties: - containerResource: - description: |- - containerResource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing a single container in - each pod of the current scale target (e.g. CPU or memory). Such metrics are - built in to Kubernetes, and have special scaling options on top of those - available to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. - properties: - container: - description: container is the name of the container - in the pods of the scaling target - type: string - name: - description: name is the name of the resource in - question. - type: string - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - container - - name - - target - type: object - external: - description: |- - external refers to a global metric that is not associated - with any Kubernetes object. It allows autoscaling based on information - coming from components running outside of cluster - (for example length of queue in cloud messaging service, or - QPS from loadbalancer running outside of cluster). - properties: - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - object: - description: |- - object refers to a metric describing a single kubernetes object - (for example, hits-per-second on an Ingress object). - properties: - describedObject: - description: describedObject specifies the descriptions - of a object,such as kind,name apiVersion - properties: - apiVersion: - description: apiVersion is the API version of - the referent - type: string - kind: - description: 'kind is the kind of the referent; - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'name is the name of the referent; - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - required: - - kind - - name - type: object - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - describedObject - - metric - - target - type: object - pods: - description: |- - pods refers to a metric describing each pod in the current scale target - (for example, transactions-processed-per-second). The values will be - averaged together before being compared to the target value. - properties: - metric: - description: metric identifies the target metric - by name and selector - properties: - name: - description: name is the name of the given metric - type: string - selector: - description: |- - selector is the string-encoded form of a standard kubernetes label selector for the given metric - When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. - When unset, just the metricName will be used to gather metrics. - properties: - matchExpressions: - description: matchExpressions is a list - of label selector requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key - that the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - required: - - name - type: object - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - metric - - target - type: object - resource: - description: |- - resource refers to a resource metric (such as those specified in - requests and limits) known to Kubernetes describing each pod in the - current scale target (e.g. CPU or memory). Such metrics are built in to - Kubernetes, and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - properties: - name: - description: name is the name of the resource in - question. - type: string - target: - description: target specifies the target value for - the given metric - properties: - averageUtilization: - description: |- - averageUtilization is the target value of the average of the - resource metric across all relevant pods, represented as a percentage of - the requested value of the resource for the pods. - Currently only valid for Resource metric source type - format: int32 - type: integer - averageValue: - anyOf: - - type: integer - - type: string - description: |- - averageValue is the target value of the average of the - metric across all relevant pods (as a quantity) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: - description: type represents whether the metric - type is Utilization, Value, or AverageValue - type: string - value: - anyOf: - - type: integer - - type: string - description: value is the target value of the - metric (as a quantity). - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - required: - - type - type: object - required: - - name - - target - type: object - type: - description: |- - type is the type of metric source. It should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a matching field in the object. - Note: "ContainerResource" type is available on when the feature-gate - HPAContainerMetrics is enabled - type: string - required: - - type - type: object - type: array - minReplicas: - description: |- - minReplicas is the lower limit for the number of replicas to which the autoscaler - can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least one Object or External - metric is configured. Scaling is active as long as at least one metric value is - available. - format: int32 - type: integer - postgres: - properties: - disableSSLMode: - type: boolean - host: - type: string - hostFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - password: - type: string - passwordFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - port: - type: integer - portFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - username: - type: string - usernameFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or - its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's - namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - replicas: - default: 1 - format: int32 - type: integer - type: object - payments: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - mongoDB: - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - search: - properties: - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - webhooks: - properties: - debug: - type: boolean - image: - type: string - imagePullSecrets: - description: |- - ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. - If specified, these secrets will be passed to individual puller implementations for them to use. - More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - type: array - ingress: - properties: - annotations: - additionalProperties: - type: string - type: object - enabled: - type: boolean - host: - type: string - type: object - mongoDB: - type: object - scaling: - properties: - cpuLimit: - type: integer - enabled: - type: boolean - maxReplica: - type: integer - minReplica: - type: integer - type: object - type: object - type: object - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .status.progress - name: Status - type: string - - description: Stack Version - jsonPath: .spec.versions - name: Version - type: string - - description: Stack Configuration - jsonPath: .spec.seed - name: Configuration - type: string - name: v1beta2 - schema: - openAPIV3Schema: - description: Stack is the Schema for the stacks API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: StackSpec defines the desired state of Stack - properties: - auth: - properties: - delegatedOIDCServer: - properties: - clientID: - type: string - clientIDFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - clientSecret: - type: string - clientSecretFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - issuer: - type: string - issuerFrom: - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap or its - key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret in the pod's namespace - properties: - key: - description: The key of the secret to select from. Must - be a valid secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret or its key - must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - type: object - staticClients: - items: - properties: - description: - type: string - id: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - secrets: - items: - type: string - type: array - required: - - id - type: object - type: array - required: - - delegatedOIDCServer - type: object - debug: - type: boolean - dev: - type: boolean - host: - type: string - scheme: - default: http - type: string - seed: - type: string - versions: - type: string - required: - - auth - - host - - seed - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - staticAuthClients: - additionalProperties: - properties: - description: - type: string - id: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - secrets: - items: - type: string - type: array - required: - - id - type: object - type: object - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - description: Stack Disabled - jsonPath: .spec.disabled - name: Disable - type: string - - description: Stack Version - jsonPath: .spec.versions - name: Version - type: string - - description: Stack Configuration - jsonPath: .spec.seed - name: Configuration - type: string - name: v1beta3 - schema: - openAPIV3Schema: - description: Stack is the Schema for the stacks API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: StackSpec defines the desired state of Stack - properties: - auth: - properties: - delegatedOIDCServer: - properties: - clientID: - type: string - clientSecret: - type: string - issuer: - type: string - type: object - staticClients: - items: - properties: - description: - type: string - id: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - secrets: - items: - type: string - type: array - required: - - id - type: object - type: array - required: - - delegatedOIDCServer - type: object - debug: - type: boolean - dev: - type: boolean - disabled: - type: boolean - host: - type: string - scheme: - default: http - type: string - seed: - type: string - services: - properties: - control: - properties: - disabled: - type: boolean - type: object - ledger: - properties: - disabled: - type: boolean - type: object - orchestration: - properties: - disabled: - type: boolean - type: object - payments: - properties: - disabled: - type: boolean - type: object - reconciliation: - properties: - disabled: - type: boolean - type: object - wallets: - properties: - disabled: - type: boolean - type: object - webhooks: - properties: - disabled: - type: boolean - type: object - type: object - stargate: - properties: - stargateServerURL: - type: string - required: - - stargateServerURL - type: object - versions: - type: string - required: - - auth - - host - - seed - type: object - status: - properties: - conditions: - items: - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the last time the condition transitioned from one status to another. - This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. - format: date-time - type: string - message: - description: |- - message is a human readable message indicating details about the transition. - This may be an empty string. - maxLength: 32768 - type: string - observedGeneration: - description: |- - observedGeneration represents the .metadata.generation that the condition was set based upon. - For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date - with respect to the current state of the instance. - format: int64 - minimum: 0 - type: integer - status: - description: status of the condition, one of True, False, Unknown. - enum: - - "True" - - "False" - - Unknown - type: string - type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) - maxLength: 316 - pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ - type: string - required: - - lastTransitionTime - - status - - type - type: object - type: array - error: - type: string - light: - type: boolean - ports: - additionalProperties: - additionalProperties: - format: int32 - type: integer - type: object - type: object - ready: - type: boolean - staticAuthClients: - additionalProperties: - properties: - description: - type: string - id: - type: string - postLogoutRedirectUris: - items: - type: string - type: array - public: - type: boolean - redirectUris: - items: - type: string - type: array - scopes: - items: - type: string - type: array - secrets: - items: - type: string - type: array - required: - - id - type: object - type: object - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_versions.stack.formance.com.yaml b/components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_versions.stack.formance.com.yaml deleted file mode 100644 index f5bf6a59a9..0000000000 --- a/components/operator/helm/crds/templates/crds/apiextensions.k8s.io_v1_customresourcedefinition_versions.stack.formance.com.yaml +++ /dev/null @@ -1,124 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.14.0 - helm.sh/resource-policy: keep - name: versions.stack.formance.com -spec: - group: stack.formance.com - names: - kind: Versions - listKind: VersionsList - plural: versions - singular: versions - scope: Cluster - versions: - - name: v1beta2 - schema: - openAPIV3Schema: - description: Versions is the Schema for the versions API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: VersionsSpec defines the desired state of Versions - properties: - auth: - type: string - control: - type: string - counterparties: - type: string - ledger: - type: string - orchestration: - type: string - payments: - type: string - search: - type: string - wallets: - type: string - webhooks: - type: string - type: object - status: - description: VersionsStatus defines the observed state of Versions - type: object - type: object - served: true - storage: false - subresources: - status: {} - - name: v1beta3 - schema: - openAPIV3Schema: - description: Versions is the Schema for the versions API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: VersionsSpec defines the desired state of Versions - properties: - auth: - type: string - control: - type: string - gateway: - type: string - ledger: - type: string - orchestration: - type: string - payments: - type: string - reconciliation: - type: string - search: - type: string - stargate: - type: string - wallets: - type: string - webhooks: - type: string - type: object - status: - description: VersionsStatus defines the observed state of Versions - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/components/operator/helm/operator/templates/gen/rbac.authorization.k8s.io_v1_clusterrole_formance-manager-role.yaml b/components/operator/helm/operator/templates/gen/rbac.authorization.k8s.io_v1_clusterrole_formance-manager-role.yaml index 26ac1b7770..fa548655e3 100644 --- a/components/operator/helm/operator/templates/gen/rbac.authorization.k8s.io_v1_clusterrole_formance-manager-role.yaml +++ b/components/operator/helm/operator/templates/gen/rbac.authorization.k8s.io_v1_clusterrole_formance-manager-role.yaml @@ -760,107 +760,3 @@ rules: - patch - update - watch -- apiGroups: - - stack.formance.com - resources: - - configurations - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.formance.com - resources: - - configurations/finalizers - verbs: - - update -- apiGroups: - - stack.formance.com - resources: - - configurations/status - verbs: - - get - - patch - - update -- apiGroups: - - stack.formance.com - resources: - - migrations - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.formance.com - resources: - - migrations/finalizers - verbs: - - update -- apiGroups: - - stack.formance.com - resources: - - migrations/status - verbs: - - get - - patch - - update -- apiGroups: - - stack.formance.com - resources: - - stacks - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.formance.com - resources: - - stacks/finalizers - verbs: - - update -- apiGroups: - - stack.formance.com - resources: - - stacks/status - verbs: - - get - - patch - - update -- apiGroups: - - stack.formance.com - resources: - - versions - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - stack.formance.com - resources: - - versions/finalizers - verbs: - - update -- apiGroups: - - stack.formance.com - resources: - - versions/status - verbs: - - get - - patch - - update diff --git a/components/operator/internal/resources/all.go b/components/operator/internal/resources/all.go index aabcc0a01e..81e38697da 100644 --- a/components/operator/internal/resources/all.go +++ b/components/operator/internal/resources/all.go @@ -12,9 +12,6 @@ import ( _ "github.com/formancehq/operator/internal/resources/gatewayhttpapis" _ "github.com/formancehq/operator/internal/resources/gateways" _ "github.com/formancehq/operator/internal/resources/ledgers" - _ "github.com/formancehq/operator/internal/resources/legacy/configurations" - _ "github.com/formancehq/operator/internal/resources/legacy/stacks" - _ "github.com/formancehq/operator/internal/resources/legacy/versions" _ "github.com/formancehq/operator/internal/resources/orchestrations" _ "github.com/formancehq/operator/internal/resources/payments" _ "github.com/formancehq/operator/internal/resources/reconciliations" diff --git a/components/operator/internal/resources/legacy/configurations/init.go b/components/operator/internal/resources/legacy/configurations/init.go deleted file mode 100644 index 6cd1fec3b1..0000000000 --- a/components/operator/internal/resources/legacy/configurations/init.go +++ /dev/null @@ -1,432 +0,0 @@ -package configurations - -import ( - "fmt" - "net/url" - - "github.com/formancehq/operator/api/stack.formance.com/v1beta3" - . "github.com/formancehq/operator/internal/core" - "github.com/formancehq/operator/internal/resources/settings" - . "github.com/formancehq/stack/libs/go-libs/collectionutils" - "k8s.io/apimachinery/pkg/types" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/reconcile" -) - -// +kubebuilder:rbac:groups=stack.formance.com,resources=configurations,verbs=get;list;watch;create;update;patch;delete -// +kubebuilder:rbac:groups=stack.formance.com,resources=configurations/status,verbs=get;update;patch -// +kubebuilder:rbac:groups=stack.formance.com,resources=configurations/finalizers,verbs=update - -func Reconcile(ctx Context, configuration *v1beta3.Configuration) error { - - stacks := &v1beta3.StackList{} - if err := ctx.GetClient().List(ctx, stacks, client.MatchingFields{ - ".spec.seed": configuration.Name, - }); err != nil { - return err - } - - stackNames := Map(stacks.Items, func(from v1beta3.Stack) string { - return from.GetName() - }) - - type resourceRequirementDescriptor struct { - requirements *v1beta3.ResourceProperties - deployment string - } - for _, cfg := range []resourceRequirementDescriptor{ - { - requirements: configuration.Spec.Services.Ledger.ResourceProperties, - deployment: "ledger", - }, - { - requirements: configuration.Spec.Services.Payments.ResourceProperties, - deployment: "payments", - }, - { - requirements: configuration.Spec.Services.Orchestration.ResourceProperties, - deployment: "orchestration", - }, - { - requirements: configuration.Spec.Services.Auth.ResourceProperties, - deployment: "auth", - }, - { - requirements: configuration.Spec.Services.Webhooks.ResourceProperties, - deployment: "webhooks", - }, - { - requirements: configuration.Spec.Services.Reconciliation.ResourceProperties, - deployment: "reconciliation", - }, - { - requirements: configuration.Spec.Services.Gateway.ResourceProperties, - deployment: "gateway", - }, - { - requirements: configuration.Spec.Services.Wallets.ResourceProperties, - deployment: "wallets", - }, - { - requirements: configuration.Spec.Services.Stargate.ResourceProperties, - deployment: "stargate", - }, - { - requirements: configuration.Spec.Services.Search.SearchResourceProperties, - deployment: "search", - }, - { - requirements: configuration.Spec.Services.Search.BenthosResourceProperties, - deployment: "benthos", - }, - } { - if cfg.requirements == nil { - continue - } - var computeResourceList = func(resource *v1beta3.Resource) string { - if resource == nil { - return "" - } - limits := "" - if resource.Cpu != "" { - limits = limits + "cpu=" + resource.Cpu - } - if resource.Memory != "" { - if limits != "" { - limits = limits + "," - } - limits = limits + "memory=" + resource.Memory - } - return limits - } - - if limits := computeResourceList(cfg.requirements.Limits); limits != "" { - settingName := fmt.Sprintf("%s-%s-resource-limits", configuration.Name, cfg.deployment) - settingKey := fmt.Sprintf("applications.%s.containers.*.resource-requirements.limits", cfg.deployment) - - _, err := settings.CreateOrUpdate(ctx, settingName, settingKey, limits, stackNames...) - if err != nil { - return err - } - } - - if requests := computeResourceList(cfg.requirements.Request); requests != "" { - settingName := fmt.Sprintf("%s-%s-resource-requests", configuration.Name, cfg.deployment) - settingKey := fmt.Sprintf("applications.%s.containers.*.resource-requirements.requests", cfg.deployment) - - _, err := settings.CreateOrUpdate(ctx, settingName, settingKey, requests, stackNames...) - if err != nil { - return err - } - } - } - - type databaseDescriptor struct { - config v1beta3.PostgresConfig - name string - } - - for _, cfg := range []databaseDescriptor{ - { - config: configuration.Spec.Services.Ledger.Postgres, - name: "ledger", - }, - { - config: configuration.Spec.Services.Payments.Postgres, - name: "payments", - }, - { - config: configuration.Spec.Services.Orchestration.Postgres, - name: "orchestration", - }, - { - config: configuration.Spec.Services.Auth.Postgres, - name: "auth", - }, - { - config: configuration.Spec.Services.Webhooks.Postgres, - name: "webhooks", - }, - { - config: configuration.Spec.Services.Reconciliation.Postgres, - name: "reconciliation", - }, - } { - basicAuth := "" - if cfg.config.Username != "" { - basicAuth = fmt.Sprintf("%s:%s@", cfg.config.Username, cfg.config.Password) - } - endpoint := fmt.Sprintf("%s:%d", cfg.config.Host, cfg.config.Port) - - options := url.Values{} - if cfg.config.DisableSSLMode { - options.Set("disableSSLMode", "true") - } - if cfg.config.CredentialsFromSecret != "" { - options.Set("secret", cfg.config.CredentialsFromSecret) - } - - _, err := settings.CreateOrUpdate(ctx, fmt.Sprintf("%s-%s-postgres-uri", configuration.Name, cfg.name), - fmt.Sprintf("postgres.%s.uri", cfg.name), - fmt.Sprintf("postgresql://%s%s?%s", basicAuth, endpoint, options.Encode()), - stackNames...) - if err != nil { - return err - } - } - - if monitoring := configuration.Spec.Monitoring; monitoring != nil { - - var createSettings = func(discr string, spec *v1beta3.OtlpSpec) error { - options := url.Values{} - if spec.Insecure { - options.Set("insecure", "true") - } - dsn := fmt.Sprintf( - "%s://%s:%d?%s", - spec.Mode, - spec.Endpoint, - spec.Port, - options.Encode(), - ) - - _, err := settings.CreateOrUpdate(ctx, fmt.Sprintf("%s-otel-traces", configuration.Name), - fmt.Sprintf("opentelemetry.%s.dsn", discr), dsn, stackNames...) - if err != nil { - return err - } - - return nil - } - - if monitoring.Traces != nil && monitoring.Traces.Otlp != nil { - if err := createSettings("traces", monitoring.Traces.Otlp); err != nil { - return err - } - } - - if monitoring.Metrics != nil && monitoring.Metrics.Otlp != nil { - if err := createSettings("metrics", monitoring.Metrics.Otlp); err != nil { - return err - } - } - } - - if configuration.Spec.Broker.Kafka != nil { - options := url.Values{} - if configuration.Spec.Broker.Kafka.TLS { - options.Set("tls", "true") - } - if sasl := configuration.Spec.Broker.Kafka.SASL; sasl != nil { - options.Set("saslEnabled", "true") - if sasl.Username != "" { - options.Set("saslUsername", sasl.Username) - } - if sasl.Password != "" { - options.Set("saslPassword", sasl.Password) - } - if sasl.Mechanism != "" { - options.Set("saslMechanism", sasl.Mechanism) - } - if sasl.ScramSHASize != "" { - options.Set("saslSCRAMSHASize", sasl.ScramSHASize) - } - } - dsn := fmt.Sprintf("kafka://%s?%s", configuration.Spec.Broker.Kafka.Brokers[0], options.Encode()) - - _, err := settings.CreateOrUpdate(ctx, fmt.Sprintf("%s-broker", configuration.Name), - "broker.dsn", dsn, stackNames...) - if err != nil { - return err - } - } else if configuration.Spec.Broker.Nats != nil { - - options := url.Values{} - if configuration.Spec.Broker.Nats.Replicas != 0 { - options.Set("replicas", fmt.Sprint(configuration.Spec.Broker.Nats.Replicas)) - } - dsn := fmt.Sprintf("nats://%s?%s", configuration.Spec.Broker.Nats.URL, options.Encode()) - - _, err := settings.CreateOrUpdate(ctx, fmt.Sprintf("%s-broker", configuration.Name), - "broker.dsn", dsn, stackNames...) - if err != nil { - return err - } - } - - options := url.Values{} - if configuration.Spec.Temporal.TLS.SecretName != "" { - options.Set("secret", configuration.Spec.Temporal.TLS.SecretName) - } - _, err := settings.CreateOrUpdate(ctx, fmt.Sprintf("%s-temporal-dsn", configuration.Name), - "temporal.dsn", - fmt.Sprintf("temporal://%s/%s?%s", configuration.Spec.Temporal.Address, configuration.Spec.Temporal.Namespace, options.Encode()), - stackNames..., - ) - if err != nil { - return err - } - - if configuration.Spec.Temporal.TLS.CRT != "" { - _, err = settings.CreateOrUpdate(ctx, fmt.Sprintf("%s-temporal-tls-crt", configuration.Name), - "temporal.tls.crt", configuration.Spec.Temporal.TLS.CRT, stackNames...) - if err != nil { - return err - } - _, err = settings.CreateOrUpdate(ctx, fmt.Sprintf("%s-temporal-tls-key", configuration.Name), - "temporal.tls.key", configuration.Spec.Temporal.TLS.Key, stackNames...) - if err != nil { - return err - } - } - - basicAuth := "" - options = url.Values{} - if basicAuthConf := configuration.Spec.Services.Search.ElasticSearchConfig.BasicAuth; basicAuthConf != nil { - if basicAuthConf.Username != "" { - basicAuth = fmt.Sprintf("%s:%s@", basicAuthConf.Username, basicAuthConf.Password) - } - if basicAuthConf.SecretName != "" { - options.Set("secret", basicAuthConf.SecretName) - } - } - if configuration.Spec.Services.Search.ElasticSearchConfig.TLS.Enabled { - options.Set("tls", "true") - if configuration.Spec.Services.Search.ElasticSearchConfig.TLS.SkipCertVerify { - options.Set("skipCertVerify", "true") - } - } - - elasticSearchDSN := fmt.Sprintf( - "%s://%s%s:%d?%s", - configuration.Spec.Services.Search.ElasticSearchConfig.Scheme, - basicAuth, - configuration.Spec.Services.Search.ElasticSearchConfig.Host, - configuration.Spec.Services.Search.ElasticSearchConfig.Port, - options.Encode(), - ) - - _, err = settings.CreateOrUpdate(ctx, fmt.Sprintf("%s-elasticsearch-dsn", configuration.Name), - "elasticsearch.dsn", elasticSearchDSN, stackNames...) - if err != nil { - return err - } - - batchingConfig := "" - - if configuration.Spec.Services.Search.Batching.Count != 0 { - batchingConfig = fmt.Sprintf("count=%d", configuration.Spec.Services.Search.Batching.Count) - } - - if configuration.Spec.Services.Search.Batching.Period != "" { - if len(batchingConfig) > 0 { - batchingConfig = batchingConfig + "," - } - batchingConfig = batchingConfig + "period=" + configuration.Spec.Services.Search.Batching.Period - } - if batchingConfig != "" { - _, err = settings.CreateOrUpdate(ctx, fmt.Sprintf("%s-search-batching", configuration.Name), - "search.batching", batchingConfig, stackNames...) - if err != nil { - return err - } - } - - if len(configuration.Spec.Registries) > 0 { - for name, config := range configuration.Spec.Registries { - _, err = settings.CreateOrUpdate(ctx, fmt.Sprintf("%s-registries-%s", configuration.Name, name), - fmt.Sprintf("registries.%s.endpoint", name), config.Endpoint, stackNames...) - if err != nil { - return err - } - } - } - - if configuration.Spec.Services.Payments.EncryptionKey != "" { - _, err = settings.CreateOrUpdate(ctx, fmt.Sprintf("%s-payments-encryption-key", configuration.Name), - "payments.encryption-key", configuration.Spec.Services.Payments.EncryptionKey, stackNames...) - if err != nil { - return err - } - } - - type serviceAnnotationsDescriptor struct { - annotations map[string]string - name string - } - for _, cfg := range []serviceAnnotationsDescriptor{ - { - annotations: configuration.Spec.Services.Ledger.Annotations.Service, - name: "ledger", - }, - { - annotations: configuration.Spec.Services.Payments.Annotations.Service, - name: "payments", - }, - { - annotations: configuration.Spec.Services.Orchestration.Annotations.Service, - name: "orchestration", - }, - { - annotations: configuration.Spec.Services.Auth.Annotations.Service, - name: "auth", - }, - { - annotations: configuration.Spec.Services.Webhooks.Annotations.Service, - name: "webhooks", - }, - { - annotations: configuration.Spec.Services.Reconciliation.Annotations.Service, - name: "reconciliation", - }, - { - annotations: configuration.Spec.Services.Gateway.Annotations.Service, - name: "gateway", - }, - { - annotations: configuration.Spec.Services.Wallets.Annotations.Service, - name: "wallets", - }, - { - annotations: configuration.Spec.Services.Stargate.Annotations.Service, - name: "stargate", - }, - { - annotations: configuration.Spec.Services.Search.Annotations.Service, - name: "search", - }, - } { - if cfg.annotations == nil || len(cfg.annotations) == 0 { - continue - } - - computed := "" - for key, value := range cfg.annotations { - computed = fmt.Sprintf("%s=%s,%s", key, value, computed) - } - computed = computed[:len(computed)-1] - - _, err = settings.CreateOrUpdate(ctx, fmt.Sprintf("%s-%s-service-annotations", configuration.Name, cfg.name), - fmt.Sprintf("services.%s.annotations", cfg.name), - computed, stackNames...) - if err != nil { - return err - } - } - - return nil -} - -func init() { - Init( - WithReconciler[*v1beta3.Configuration](Reconcile, - WithWatch[*v1beta3.Configuration, *v1beta3.Stack](func(ctx Context, object *v1beta3.Stack) []reconcile.Request { - return []reconcile.Request{{ - NamespacedName: types.NamespacedName{ - Name: object.Spec.Seed, - }, - }} - }), - ), - ) -} diff --git a/components/operator/internal/resources/legacy/stacks/init.go b/components/operator/internal/resources/legacy/stacks/init.go deleted file mode 100644 index 0d977747a7..0000000000 --- a/components/operator/internal/resources/legacy/stacks/init.go +++ /dev/null @@ -1,495 +0,0 @@ -package stacks - -import ( - "fmt" - "strings" - - "k8s.io/apimachinery/pkg/runtime/schema" - - "github.com/formancehq/operator/api/formance.com/v1beta1" - "github.com/formancehq/operator/api/stack.formance.com/v1beta3" - . "github.com/formancehq/operator/internal/core" - . "github.com/formancehq/stack/libs/go-libs/collectionutils" - "github.com/pkg/errors" - appsv1 "k8s.io/api/apps/v1" - batchv1 "k8s.io/api/batch/v1" - corev1 "k8s.io/api/core/v1" - networkingv1 "k8s.io/api/networking/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/types" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/reconcile" -) - -// +kubebuilder:rbac:groups=stack.formance.com,resources=stacks,verbs=get;list;watch;create;update;patch;delete -// +kubebuilder:rbac:groups=stack.formance.com,resources=stacks/status,verbs=get;update;patch -// +kubebuilder:rbac:groups=stack.formance.com,resources=stacks/finalizers,verbs=update -// +kubebuilder:rbac:groups=stack.formance.com,resources=configurations,verbs=get;list;watch -// +kubebuilder:rbac:groups=stack.formance.com,resources=migrations,verbs=get;list;watch;create;update;patch;delete -// +kubebuilder:rbac:groups=stack.formance.com,resources=migrations/status,verbs=get;update;patch -// +kubebuilder:rbac:groups=stack.formance.com,resources=migrations/finalizers,verbs=update - -func Reconcile(ctx Context, stack *v1beta3.Stack) error { - if stack.Spec.Versions == "" { - patch := client.MergeFrom(stack.DeepCopy()) - stack.Spec.Versions = "default" - if err := ctx.GetClient().Patch(ctx, stack, patch); err != nil { - return err - } - return NewPendingError() - } - - configuration := &v1beta3.Configuration{} - if err := ctx.GetClient().Get(ctx, types.NamespacedName{ - Name: stack.Spec.Seed, - }, configuration); err != nil { - return err - } - - for _, object := range []client.Object{ - &corev1.ConfigMap{}, - &corev1.Secret{}, - &corev1.Service{}, - &appsv1.Deployment{}, - &networkingv1.Ingress{}, - &batchv1.Job{}, - &batchv1.CronJob{}, - } { - kinds, _, err := ctx.GetScheme().ObjectKinds(object) - if err != nil { - return err - } - - list := &unstructured.UnstructuredList{} - list.SetGroupVersionKind(kinds[0]) - if err := ctx.GetClient().List(ctx, list, client.InNamespace(stack.Name)); err != nil { - return err - } - - l: - for _, item := range list.Items { - ownerReferences := item.GetOwnerReferences() - for i, reference := range ownerReferences { - if reference.APIVersion != "stack.formance.com/v1beta3" { - continue - } - - patch := client.MergeFrom(item.DeepCopy()) - if i < len(ownerReferences)-1 { - ownerReferences = append(ownerReferences[:i], ownerReferences[i+1:]...) - } else { - ownerReferences = ownerReferences[:i] - } - item.SetOwnerReferences(ownerReferences) - - labels := item.GetLabels() - labels["formance.com/migrate"] = "true" - item.SetLabels(labels) - - if err := ctx.GetClient().Patch(ctx, &item, patch); err != nil { - return err - } - - continue l - } - } - } - - newStack, _, err := CreateOrUpdate[*v1beta1.Stack](ctx, types.NamespacedName{ - Name: stack.Name, - }, func(t *v1beta1.Stack) error { - if t.Annotations == nil { - t.Annotations = map[string]string{} - } - // Automatically set skip label on creation - // if the new object stack does not exists actually (we're upgrading) - // and if the actual stack (old object) is already ready - // this way, creating with the agent works as expected - // and old stacks will not be automatically upgraded - if t.ResourceVersion == "" && stack.Status.Ready { - t.Annotations[v1beta1.SkipLabel] = "true" - } - t.Spec.Dev = stack.Spec.Dev - t.Spec.Debug = stack.Spec.Debug - if configuration.Spec.Services.Gateway.EnableAuditPlugin != nil { - t.Spec.EnableAudit = *configuration.Spec.Services.Gateway.EnableAuditPlugin - } - t.Spec.Disabled = stack.Spec.Disabled - t.Spec.VersionsFromFile = stack.Spec.Versions - - return nil - }) - if err != nil { - return errors.Wrap(err, "creating stack") - } - - ns := &corev1.Namespace{} - if err := ctx.GetClient().Get(ctx, types.NamespacedName{ - Name: stack.Name, - }, ns); client.IgnoreNotFound(err) != nil { - return err - } else if err == nil { - ownerReferences := ns.GetOwnerReferences() - for i, reference := range ownerReferences { - if reference.APIVersion != "stack.formance.com/v1beta3" { - continue - } - - patch := client.MergeFrom(ns.DeepCopy()) - if i < len(ownerReferences)-1 { - ownerReferences = append(ownerReferences[:i], ownerReferences[i+1:]...) - } else { - ownerReferences = ownerReferences[:i] - } - ns.SetOwnerReferences(ownerReferences) - - if err := ctx.GetClient().Patch(ctx, ns, patch); err != nil { - return err - } - } - } - - ready := true - - if !isDisabled(stack, configuration, false, "ledger") { - ledger, _, err := CreateOrUpdate[*v1beta1.Ledger](ctx, types.NamespacedName{ - Name: stack.Name, - }, func(t *v1beta1.Ledger) error { - t.Spec.Stack = stack.Name - t.Spec.DeploymentStrategy = v1beta1.DeploymentStrategy(configuration.Spec.Services.Ledger.DeploymentStrategy) - t.Spec.Locking = &v1beta1.LockingStrategy{ - Strategy: configuration.Spec.Services.Ledger.Locking.Strategy, - Redis: func() *v1beta1.LockingStrategyRedisConfig { - if configuration.Spec.Services.Ledger.Locking.Strategy != "redis" { - return nil - } - - return &v1beta1.LockingStrategyRedisConfig{ - Uri: configuration.Spec.Services.Ledger.Locking.Redis.Uri, - TLS: configuration.Spec.Services.Ledger.Locking.Redis.TLS, - InsecureTLS: configuration.Spec.Services.Ledger.Locking.Redis.InsecureTLS, - Duration: configuration.Spec.Services.Ledger.Locking.Redis.Duration, - Retry: configuration.Spec.Services.Ledger.Locking.Redis.Retry, - } - }(), - } - - return nil - }) - if err != nil { - return errors.Wrap(err, "creating ledger service") - } - ready = ready && ledger.Status.Ready - } - - if !isDisabled(stack, configuration, false, "payments") { - payments, _, err := CreateOrUpdate[*v1beta1.Payments](ctx, types.NamespacedName{ - Name: stack.Name, - }, func(t *v1beta1.Payments) error { - t.Spec.Stack = stack.Name - return nil - }) - if err != nil { - return errors.Wrap(err, "creating payments service") - } - ready = ready && payments.Status.Ready - } - - if !isDisabled(stack, configuration, false, "wallets") { - wallets, _, err := CreateOrUpdate[*v1beta1.Wallets](ctx, types.NamespacedName{ - Name: stack.Name, - }, func(t *v1beta1.Wallets) error { - t.Spec.Stack = stack.Name - return nil - }) - if err != nil { - return errors.Wrap(err, "creating wallets service") - } - ready = ready && wallets.Status.Ready - } - - if !isDisabled(stack, configuration, false, "orchestration") { - orchestration, _, err := CreateOrUpdate[*v1beta1.Orchestration](ctx, types.NamespacedName{ - Name: stack.Name, - }, func(t *v1beta1.Orchestration) error { - t.Spec.Stack = stack.Name - return nil - }) - if err != nil { - return errors.Wrap(err, "creating orchestration service") - } - ready = ready && orchestration.Status.Ready - } - - if !isDisabled(stack, configuration, false, "webhooks") { - webhooks, _, err := CreateOrUpdate[*v1beta1.Webhooks](ctx, types.NamespacedName{ - Name: stack.Name, - }, func(t *v1beta1.Webhooks) error { - t.Spec.Stack = stack.Name - return nil - }) - if err != nil { - return errors.Wrap(err, "creating webhooks service") - } - ready = ready && webhooks.Status.Ready - } - - // note(gfyrag): reconciliation declared as EE. - // We should also declare some other services EE but to keep compatibility, today, we just configuration - // reconciliation as EE - if !isDisabled(stack, configuration, true, "reconciliation") { - reconciliation, _, err := CreateOrUpdate[*v1beta1.Reconciliation](ctx, types.NamespacedName{ - Name: stack.Name, - }, func(t *v1beta1.Reconciliation) error { - t.Spec.Stack = stack.Name - return nil - }) - if err != nil { - return errors.Wrap(err, "creating reconciliation service") - } - ready = ready && reconciliation.Status.Ready - } - - if !isDisabled(stack, configuration, false, "search") { - search, _, err := CreateOrUpdate[*v1beta1.Search](ctx, types.NamespacedName{ - Name: stack.Name, - }, func(t *v1beta1.Search) error { - t.Spec.Stack = stack.Name - return nil - }) - if err != nil { - return errors.Wrap(err, "creating search service") - } - ready = ready && search.Status.Ready - } - - if !isDisabled(stack, configuration, false, "auth") { - auth, _, err := CreateOrUpdate[*v1beta1.Auth](ctx, types.NamespacedName{ - Name: stack.Name, - }, func(t *v1beta1.Auth) error { - t.Spec.Stack = stack.Name - t.Spec.DelegatedOIDCServer = &v1beta1.DelegatedOIDCServerConfiguration{ - Issuer: stack.Spec.Auth.DelegatedOIDCServer.Issuer, - ClientID: stack.Spec.Auth.DelegatedOIDCServer.ClientID, - ClientSecret: stack.Spec.Auth.DelegatedOIDCServer.ClientSecret, - } - - return nil - }) - if err != nil { - return errors.Wrap(err, "creating auth service") - } - ready = ready && auth.Status.Ready - } - - if !isDisabled(stack, configuration, false, "gateway") { - gateway, _, err := CreateOrUpdate[*v1beta1.Gateway](ctx, types.NamespacedName{ - Name: stack.Name, - }, func(t *v1beta1.Gateway) error { - t.Spec.Stack = stack.Name - t.Spec.Ingress = &v1beta1.GatewayIngress{ - Host: stack.Spec.Host, - Scheme: stack.Spec.Scheme, - TLS: func() *v1beta1.GatewayIngressTLS { - if configuration.Spec.Ingress.TLS == nil { - return nil - } - return &v1beta1.GatewayIngressTLS{ - SecretName: configuration.Spec.Ingress.TLS.SecretName, - } - }(), - Annotations: configuration.Spec.Ingress.Annotations, - } - - return nil - }) - if err != nil { - return errors.Wrap(err, "creating gateway service") - } - ready = ready && gateway.Status.Ready - } - - if !isDisabled(stack, configuration, false, "stargate") && stack.Spec.Stargate != nil { - parts := strings.Split(stack.Name, "-") - if len(parts) == 2 { - organizationID := parts[0] - stackID := parts[1] - - stargate, _, err := CreateOrUpdate[*v1beta1.Stargate](ctx, types.NamespacedName{ - Name: stack.Name, - }, func(t *v1beta1.Stargate) error { - t.Spec.Stack = stack.Name - t.Spec.ServerURL = stack.Spec.Stargate.StargateServerURL - t.Spec.OrganizationID = organizationID - t.Spec.StackID = stackID - t.Spec.Auth.Issuer = stack.Spec.Auth.DelegatedOIDCServer.Issuer - t.Spec.Auth.ClientID = stack.Spec.Auth.DelegatedOIDCServer.ClientID - t.Spec.Auth.ClientSecret = stack.Spec.Auth.DelegatedOIDCServer.ClientSecret - - return nil - }) - if err != nil { - return errors.Wrap(err, "creating stargate service") - } - ready = ready && stargate.Status.Ready - } - } - - for _, client := range stack.Spec.Auth.StaticClients { - _, _, err = CreateOrUpdate[*v1beta1.AuthClient](ctx, types.NamespacedName{ - Name: fmt.Sprintf("%s-%s", stack.Name, client.ID), - }, func(t *v1beta1.AuthClient) error { - t.Spec = v1beta1.AuthClientSpec{ - ID: client.ID, - Public: client.Public, - Description: func() string { - if client.Description == nil { - return "" - } - return *client.Description - }(), - RedirectUris: client.RedirectUris, - PostLogoutRedirectUris: client.PostLogoutRedirectUris, - Scopes: client.Scopes, - Secret: func() string { - if len(client.Secrets) > 0 { - return client.Secrets[0] - } - return "" - }(), - } - t.Spec.Stack = stack.Name - - return nil - }) - if err != nil { - return errors.Wrap(err, "creating auth client service") - } - } - - if ready && newStack.Annotations[v1beta1.SkipLabel] != "true" { - for _, object := range []client.Object{ - &corev1.ConfigMap{}, - &corev1.Secret{}, - &corev1.Service{}, - &appsv1.Deployment{}, - &networkingv1.Ingress{}, - &batchv1.Job{}, - &batchv1.CronJob{}, - } { - kinds, _, err := ctx.GetScheme().ObjectKinds(object) - if err != nil { - return err - } - - list := &unstructured.UnstructuredList{} - list.SetGroupVersionKind(kinds[0]) - if err := ctx.GetClient().List(ctx, list, client.InNamespace(stack.Name)); err != nil { - return err - } - - l2: - for _, item := range list.Items { - ownerReferences := item.GetOwnerReferences() - for _, reference := range ownerReferences { - if reference.APIVersion == "formance.com/v1beta1" { - continue l2 - } - } - if item.GetLabels()["formance.com/migrate"] == "true" { - if err := ctx.GetClient().Delete(ctx, &item); err != nil { - return err - } - } - } - } - - list := &unstructured.UnstructuredList{} - list.SetGroupVersionKind(schema.GroupVersionKind{ - Group: "stack.formance.com", - Version: "v1beta3", - Kind: "Migration", - }) - if err := ctx.GetClient().List(ctx, list, client.InNamespace(stack.Name)); err != nil { - return err - } - - for _, item := range list.Items { - if err := ctx.GetClient().Delete(ctx, &item); err != nil { - return err - } - } - - pods := &corev1.PodList{} - if err := ctx.GetClient().List(ctx, pods, client.InNamespace(stack.Name)); err != nil { - return err - } - - for _, item := range pods.Items { - if item.Status.Phase == "Succeeded" { - if err := ctx.GetClient().Delete(ctx, &item); err != nil { - return err - } - } - } - } - - return nil -} - -func isDisabled(stack *v1beta3.Stack, configuration *v1beta3.Configuration, isEE bool, name string) bool { - if isEE { - return !stack.Spec.Services.IsExplicitlyEnabled(name) && !configuration.Spec.Services.IsExplicitlyEnabled(name) - } else { - return stack.Spec.Services.IsExplicitlyDisabled(name) || configuration.Spec.Services.IsExplicitlyDisabled(name) - } -} - -func listStacksAndReconcile(ctx Context, opts ...client.ListOption) []reconcile.Request { - stacks := &v1beta3.StackList{} - err := ctx.GetClient().List(ctx, stacks, opts...) - if err != nil { - panic(err) - } - - return Map(stacks.Items, func(s v1beta3.Stack) reconcile.Request { - return reconcile.Request{ - NamespacedName: types.NamespacedName{ - Name: s.GetName(), - Namespace: s.GetNamespace(), - }, - } - }) -} - -func watch[T client.Object](field string) func(ctx Context, object T) []reconcile.Request { - return func(ctx Context, object T) []reconcile.Request { - return listStacksAndReconcile(ctx, &client.ListOptions{ - FieldSelector: fields.OneTermEqualSelector(field, object.GetName()), - Namespace: object.GetNamespace(), - }) - } -} - -func init() { - Init( - WithStdReconciler(Reconcile, - WithWatch[*v1beta3.Stack, *v1beta3.Configuration](watch[*v1beta3.Configuration](".spec.seed")), - WithWatch[*v1beta3.Stack, *v1beta3.Versions](watch[*v1beta3.Versions](".spec.seed")), - WithWatch[*v1beta3.Stack, *v1beta1.Stack](func(ctx Context, object *v1beta1.Stack) []reconcile.Request { - return []reconcile.Request{{ - NamespacedName: types.NamespacedName{ - Name: object.GetName(), - }, - }} - }), - ), - WithSimpleIndex[*v1beta3.Stack](".spec.seed", func(t *v1beta3.Stack) string { - return t.Spec.Seed - }), - WithSimpleIndex[*v1beta3.Stack](".spec.versions", func(t *v1beta3.Stack) string { - return t.Spec.Versions - }), - ) -} diff --git a/components/operator/internal/resources/legacy/versions/init.go b/components/operator/internal/resources/legacy/versions/init.go deleted file mode 100644 index dba049f37b..0000000000 --- a/components/operator/internal/resources/legacy/versions/init.go +++ /dev/null @@ -1,43 +0,0 @@ -package versions - -import ( - "reflect" - "strings" - - "github.com/formancehq/operator/api/formance.com/v1beta1" - "github.com/formancehq/operator/api/stack.formance.com/v1beta3" - . "github.com/formancehq/operator/internal/core" - "k8s.io/apimachinery/pkg/types" -) - -// +kubebuilder:rbac:groups=stack.formance.com,resources=versions,verbs=get;list;watch;create;update;patch;delete -// +kubebuilder:rbac:groups=stack.formance.com,resources=versions/status,verbs=get;update;patch -// +kubebuilder:rbac:groups=stack.formance.com,resources=versions/finalizers,verbs=update - -func Reconcile(ctx Context, req *v1beta3.Versions) error { - _, _, err := CreateOrUpdate[*v1beta1.Versions](ctx, types.NamespacedName{ - Name: req.Name, - }, func(t *v1beta1.Versions) error { - t.Spec = map[string]string{} - - for i := 0; i < reflect.ValueOf(req.Spec).NumField(); i++ { - field := reflect.TypeOf(req.Spec).Field(i) - jsonTag := field.Tag.Get("json") - name := strings.Split(jsonTag, ",")[0] - value := reflect.ValueOf(req.Spec).Field(i).Interface().(string) - if value == "" { - continue - } - t.Spec[name] = value - } - - return nil - }) - return err -} - -func init() { - Init( - WithReconciler[*v1beta3.Versions](Reconcile), - ) -} diff --git a/components/operator/internal/tests/internal/bootstrap.go b/components/operator/internal/tests/internal/bootstrap.go index abc23918b3..4c1846c1a0 100644 --- a/components/operator/internal/tests/internal/bootstrap.go +++ b/components/operator/internal/tests/internal/bootstrap.go @@ -10,7 +10,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "github.com/formancehq/operator/api/formance.com/v1beta1" - "github.com/formancehq/operator/api/stack.formance.com/v1beta3" "github.com/formancehq/operator/internal/core" _ "github.com/formancehq/operator/internal/resources" . "github.com/onsi/ginkgo/v2" @@ -73,7 +72,6 @@ var _ = BeforeSuite(func() { Expect(restConfig).NotTo(BeNil()) Expect(v1beta1.AddToScheme(scheme.Scheme)).To(Succeed()) - Expect(v1beta3.AddToScheme(scheme.Scheme)).To(Succeed()) k8sClient, err = client.New(restConfig, client.Options{ Scheme: scheme.Scheme, diff --git a/components/operator/internal/tests/legacystack_controller_test.go b/components/operator/internal/tests/legacystack_controller_test.go deleted file mode 100644 index 10f2bbe861..0000000000 --- a/components/operator/internal/tests/legacystack_controller_test.go +++ /dev/null @@ -1,145 +0,0 @@ -package tests_test - -import ( - "fmt" - "math/rand" - - . "github.com/formancehq/operator/internal/tests/internal" - - "github.com/formancehq/operator/api/formance.com/v1beta1" - "github.com/formancehq/operator/api/stack.formance.com/v1beta3" - "github.com/formancehq/stack/libs/go-libs/pointer" - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -var _ = Describe("StackController (legacy)", func() { - When("Creating a legacy stack with a Configuration and a Versions", func() { - var ( - configuration *v1beta3.Configuration - versions *v1beta3.Versions - stack *v1beta3.Stack - ) - BeforeEach(func() { - configuration = &v1beta3.Configuration{ - ObjectMeta: RandObjectMeta(), - Spec: v1beta3.ConfigurationSpec{ - Services: v1beta3.ConfigurationServicesSpec{ - Reconciliation: v1beta3.ReconciliationSpec{ - CommonServiceProperties: v1beta3.CommonServiceProperties{ - Disabled: pointer.For(false), - }, - }, - }, - Monitoring: &v1beta3.MonitoringSpec{ - Traces: &v1beta3.TracesSpec{ - Otlp: &v1beta3.OtlpSpec{ - Endpoint: "collector", - Port: 4317, - Insecure: false, - Mode: "grpc", - ResourceAttributes: "foo=bar", - }, - }, - }, - Registries: map[string]v1beta3.RegistryConfig{ - "ghcr.io": { - Endpoint: "http://localhost:8080", - }, - }, - }, - } - Expect(Create(configuration)).To(Succeed()) - versions = &v1beta3.Versions{ - ObjectMeta: RandObjectMeta(), - } - Expect(Create(versions)).To(Succeed()) - stack = &v1beta3.Stack{ - ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("%d-%d", rand.Int31(), rand.Int31()), - }, - Spec: v1beta3.StackSpec{ - Seed: configuration.Name, - Versions: versions.Name, - Auth: v1beta3.StackAuthSpec{ - StaticClients: []v1beta3.StaticClient{{ - ID: "client0", - Secrets: []string{"client0"}, - }}, - }, - Stargate: &v1beta3.StackStargateConfig{}, - }, - } - Expect(Create(stack)).To(Succeed()) - }) - AfterEach(func() { - Expect(Delete(stack)).To(Succeed()) - Expect(Delete(configuration)).To(Succeed()) - Expect(Delete(versions)).To(Succeed()) - }) - It("Should create all require objects", func() { - By("Should create the Stack object", func() { - s := &v1beta1.Stack{} - Eventually(func(g Gomega) error { - return LoadResource("", stack.Name, s) - }).Should(Succeed()) - }) - By("Should create the Ledger object", func() { - Eventually(func(g Gomega) error { - return LoadResource("", stack.Name, &v1beta1.Ledger{}) - }).Should(Succeed()) - }) - By("Should create the Auth object", func() { - Eventually(func(g Gomega) error { - return LoadResource("", stack.Name, &v1beta1.Auth{}) - }).Should(Succeed()) - }) - By("Should create the Gateway object", func() { - Eventually(func(g Gomega) error { - return LoadResource("", stack.Name, &v1beta1.Gateway{}) - }).Should(Succeed()) - }) - By("Should create the Orchestration object", func() { - Eventually(func(g Gomega) error { - return LoadResource("", stack.Name, &v1beta1.Orchestration{}) - }).Should(Succeed()) - }) - By("Should create the Payments object", func() { - Eventually(func(g Gomega) error { - return LoadResource("", stack.Name, &v1beta1.Payments{}) - }).Should(Succeed()) - }) - By("Should create the Search object", func() { - Eventually(func(g Gomega) error { - return LoadResource("", stack.Name, &v1beta1.Search{}) - }).Should(Succeed()) - }) - By("Should create the Stargate object", func() { - Eventually(func(g Gomega) error { - return LoadResource("", stack.Name, &v1beta1.Stargate{}) - }).Should(Succeed()) - }) - By("Should create the Wallets object", func() { - Eventually(func(g Gomega) error { - return LoadResource("", stack.Name, &v1beta1.Wallets{}) - }).Should(Succeed()) - }) - By("Should create the Webhooks object", func() { - Eventually(func(g Gomega) error { - return LoadResource("", stack.Name, &v1beta1.Webhooks{}) - }).Should(Succeed()) - }) - By("Should create the Reconciliation object", func() { - Eventually(func(g Gomega) error { - return LoadResource("", stack.Name, &v1beta1.Reconciliation{}) - }).Should(Succeed()) - }) - By("Should create a AuthClient object", func() { - Eventually(func(g Gomega) error { - return LoadResource("", fmt.Sprintf("%s-client0", stack.Name), &v1beta1.AuthClient{}) - }).Should(Succeed()) - }) - }) - }) -}) diff --git a/components/operator/internal/tests/legacyversions_controller_test.go b/components/operator/internal/tests/legacyversions_controller_test.go deleted file mode 100644 index b87526fa5b..0000000000 --- a/components/operator/internal/tests/legacyversions_controller_test.go +++ /dev/null @@ -1,38 +0,0 @@ -package tests_test - -import ( - . "github.com/formancehq/operator/internal/tests/internal" - - "github.com/formancehq/operator/api/formance.com/v1beta1" - "github.com/formancehq/operator/api/stack.formance.com/v1beta3" - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -var _ = Describe("VersionsController (legacy)", func() { - When("Creating a legacy Versions", func() { - var ( - oldVersions *v1beta3.Versions - ) - BeforeEach(func() { - oldVersions = &v1beta3.Versions{ - ObjectMeta: RandObjectMeta(), - Spec: v1beta3.VersionsSpec{ - Ledger: "1234", - }, - } - Expect(Create(oldVersions)).To(Succeed()) - }) - AfterEach(func() { - Expect(Delete(oldVersions)).To(Succeed()) - }) - It("Should create a new Versions object with the correct versions", func() { - version := &v1beta1.Versions{} - Eventually(func(g Gomega) error { - return LoadResource("", oldVersions.Name, version) - }).Should(Succeed()) - Expect(version.Spec).To(HaveLen(1)) - Expect(version.Spec["ledger"]).To(Equal("1234")) - }) - }) -}) diff --git a/components/operator/pkg/client/stack.formance.com/v1beta3/client.go b/components/operator/pkg/client/stack.formance.com/v1beta3/client.go deleted file mode 100644 index 1832663857..0000000000 --- a/components/operator/pkg/client/stack.formance.com/v1beta3/client.go +++ /dev/null @@ -1,41 +0,0 @@ -package v1beta3 - -import ( - "github.com/formancehq/operator/api/stack.formance.com/v1beta3" - "k8s.io/client-go/kubernetes/scheme" - "k8s.io/client-go/rest" -) - -func init() { - if err := v1beta3.AddToScheme(scheme.Scheme); err != nil { - panic(err) - } -} - -type Client struct { - rest.Interface -} - -func NewClient(restClient rest.Interface) *Client { - return &Client{ - Interface: restClient, - } -} - -func (c *Client) Stacks() StackInterface { - return &stackClient{ - restClient: c.Interface, - } -} - -func (c *Client) Versions() VersionsInterface { - return &versionClient{ - restClient: c.Interface, - } -} - -func (c *Client) Configurations() ConfigurationInterface { - return &configurationClient{ - restClient: c.Interface, - } -} diff --git a/components/operator/pkg/client/stack.formance.com/v1beta3/configuration.go b/components/operator/pkg/client/stack.formance.com/v1beta3/configuration.go deleted file mode 100644 index 02fbf6773f..0000000000 --- a/components/operator/pkg/client/stack.formance.com/v1beta3/configuration.go +++ /dev/null @@ -1,92 +0,0 @@ -package v1beta3 - -import ( - "context" - - "github.com/formancehq/operator/api/stack.formance.com/v1beta3" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/kubernetes/scheme" - "k8s.io/client-go/rest" -) - -type ConfigurationInterface interface { - List(ctx context.Context, opts metav1.ListOptions) (*v1beta3.ConfigurationList, error) - Get(ctx context.Context, name string, options metav1.GetOptions) (*v1beta3.Configuration, error) - Create(ctx context.Context, configuration *v1beta3.Configuration) (*v1beta3.Configuration, error) - Update(ctx context.Context, configuration *v1beta3.Configuration) (*v1beta3.Configuration, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Delete(ctx context.Context, name string) error -} - -type configurationClient struct { - restClient rest.Interface -} - -func (c *configurationClient) List(ctx context.Context, opts metav1.ListOptions) (*v1beta3.ConfigurationList, error) { - result := v1beta3.ConfigurationList{} - err := c.restClient. - Get(). - Resource("configurations"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(ctx). - Into(&result) - - return &result, err -} - -func (c *configurationClient) Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1beta3.Configuration, error) { - result := v1beta3.Configuration{} - err := c.restClient. - Get(). - Resource("configurations"). - Name(name). - VersionedParams(&opts, scheme.ParameterCodec). - Do(ctx). - Into(&result) - - return &result, err -} - -func (c *configurationClient) Create(ctx context.Context, version *v1beta3.Configuration) (*v1beta3.Configuration, error) { - result := v1beta3.Configuration{} - err := c.restClient. - Post(). - Resource("configurations"). - Body(version). - Do(ctx). - Into(&result) - - return &result, err -} - -func (c *configurationClient) Delete(ctx context.Context, name string) error { - return c.restClient. - Delete(). - Resource("configurations"). - Name(name). - Do(ctx). - Error() -} - -func (c *configurationClient) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.restClient. - Get(). - Resource("configurations"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch(ctx) -} - -func (c *configurationClient) Update(ctx context.Context, o *v1beta3.Configuration) (*v1beta3.Configuration, error) { - result := v1beta3.Configuration{} - err := c.restClient. - Put(). - Resource("configurations"). - Name(o.Name). - Body(o). - Do(ctx). - Into(&result) - - return &result, err -} diff --git a/components/operator/pkg/client/stack.formance.com/v1beta3/stack.go b/components/operator/pkg/client/stack.formance.com/v1beta3/stack.go deleted file mode 100644 index e70521c4cd..0000000000 --- a/components/operator/pkg/client/stack.formance.com/v1beta3/stack.go +++ /dev/null @@ -1,92 +0,0 @@ -package v1beta3 - -import ( - "context" - - "github.com/formancehq/operator/api/stack.formance.com/v1beta3" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/kubernetes/scheme" - "k8s.io/client-go/rest" -) - -type StackInterface interface { - List(ctx context.Context, opts metav1.ListOptions) (*v1beta3.StackList, error) - Get(ctx context.Context, name string, options metav1.GetOptions) (*v1beta3.Stack, error) - Create(ctx context.Context, stack *v1beta3.Stack) (*v1beta3.Stack, error) - Update(ctx context.Context, stack *v1beta3.Stack) (*v1beta3.Stack, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Delete(ctx context.Context, name string) error -} - -type stackClient struct { - restClient rest.Interface -} - -func (c *stackClient) List(ctx context.Context, opts metav1.ListOptions) (*v1beta3.StackList, error) { - result := v1beta3.StackList{} - err := c.restClient. - Get(). - Resource("stacks"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(ctx). - Into(&result) - - return &result, err -} - -func (c *stackClient) Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1beta3.Stack, error) { - result := v1beta3.Stack{} - err := c.restClient. - Get(). - Resource("stacks"). - Name(name). - VersionedParams(&opts, scheme.ParameterCodec). - Do(ctx). - Into(&result) - - return &result, err -} - -func (c *stackClient) Create(ctx context.Context, stack *v1beta3.Stack) (*v1beta3.Stack, error) { - result := v1beta3.Stack{} - err := c.restClient. - Post(). - Resource("stacks"). - Body(stack). - Do(ctx). - Into(&result) - - return &result, err -} - -func (c *stackClient) Delete(ctx context.Context, name string) error { - return c.restClient. - Delete(). - Resource("stacks"). - Name(name). - Do(ctx). - Error() -} - -func (c *stackClient) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.restClient. - Get(). - Resource("stacks"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch(ctx) -} - -func (c *stackClient) Update(ctx context.Context, o *v1beta3.Stack) (*v1beta3.Stack, error) { - result := v1beta3.Stack{} - err := c.restClient. - Put(). - Resource("stacks"). - Name(o.Name). - Body(o). - Do(ctx). - Into(&result) - - return &result, err -} diff --git a/components/operator/pkg/client/stack.formance.com/v1beta3/versions.go b/components/operator/pkg/client/stack.formance.com/v1beta3/versions.go deleted file mode 100644 index ba14ea478b..0000000000 --- a/components/operator/pkg/client/stack.formance.com/v1beta3/versions.go +++ /dev/null @@ -1,92 +0,0 @@ -package v1beta3 - -import ( - "context" - - "github.com/formancehq/operator/api/stack.formance.com/v1beta3" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/kubernetes/scheme" - "k8s.io/client-go/rest" -) - -type VersionsInterface interface { - List(ctx context.Context, opts metav1.ListOptions) (*v1beta3.VersionsList, error) - Get(ctx context.Context, name string, options metav1.GetOptions) (*v1beta3.Versions, error) - Create(ctx context.Context, versions *v1beta3.Versions) (*v1beta3.Versions, error) - Update(ctx context.Context, versions *v1beta3.Versions) (*v1beta3.Versions, error) - Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) - Delete(ctx context.Context, name string) error -} - -type versionClient struct { - restClient rest.Interface -} - -func (c *versionClient) List(ctx context.Context, opts metav1.ListOptions) (*v1beta3.VersionsList, error) { - result := v1beta3.VersionsList{} - err := c.restClient. - Get(). - Resource("versions"). - VersionedParams(&opts, scheme.ParameterCodec). - Do(ctx). - Into(&result) - - return &result, err -} - -func (c *versionClient) Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1beta3.Versions, error) { - result := v1beta3.Versions{} - err := c.restClient. - Get(). - Resource("versions"). - Name(name). - VersionedParams(&opts, scheme.ParameterCodec). - Do(ctx). - Into(&result) - - return &result, err -} - -func (c *versionClient) Create(ctx context.Context, version *v1beta3.Versions) (*v1beta3.Versions, error) { - result := v1beta3.Versions{} - err := c.restClient. - Post(). - Resource("versions"). - Body(version). - Do(ctx). - Into(&result) - - return &result, err -} - -func (c *versionClient) Delete(ctx context.Context, name string) error { - return c.restClient. - Delete(). - Resource("versions"). - Name(name). - Do(ctx). - Error() -} - -func (c *versionClient) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) { - opts.Watch = true - return c.restClient. - Get(). - Resource("versions"). - VersionedParams(&opts, scheme.ParameterCodec). - Watch(ctx) -} - -func (c *versionClient) Update(ctx context.Context, o *v1beta3.Versions) (*v1beta3.Versions, error) { - result := v1beta3.Versions{} - err := c.restClient. - Put(). - Resource("versions"). - Name(o.Name). - Body(o). - Do(ctx). - Into(&result) - - return &result, err -}