From 209665a5b01717795dc5767f9b62aba253cf246a Mon Sep 17 00:00:00 2001 From: KsaweryZietara <91937141+KsaweryZietara@users.noreply.github.com> Date: Mon, 20 Jan 2025 12:01:09 +0100 Subject: [PATCH 1/3] Enable current configuration load on Preview (#1654) --- internal/broker/plans.go | 32 ++++++++++++++++---------------- internal/broker/plans_schema.go | 8 +++++++- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/internal/broker/plans.go b/internal/broker/plans.go index 680ef550cf..4dbc7068ac 100644 --- a/internal/broker/plans.go +++ b/internal/broker/plans.go @@ -368,28 +368,28 @@ func requiredOwnClusterSchemaProperties() []string { func SapConvergedCloudSchema(machineTypesDisplay, regionsDisplay map[string]string, machineTypes []string, additionalParams, update bool, shootAndSeedFeatureFlag bool, sapConvergedCloudRegions []string) *map[string]interface{} { properties := NewProvisioningProperties(machineTypesDisplay, regionsDisplay, machineTypes, sapConvergedCloudRegions, update) - return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties(), true, shootAndSeedFeatureFlag) + return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties(), true, shootAndSeedFeatureFlag, false) } func PreviewSchema(machineTypesDisplay, regionsDisplay map[string]string, machineTypes []string, additionalParams, update bool, euAccessRestricted bool) *map[string]interface{} { properties := NewProvisioningProperties(machineTypesDisplay, regionsDisplay, machineTypes, AWSRegions(euAccessRestricted), update) properties.Networking = NewNetworkingSchema() - return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties(), false, false) + return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties(), false, false, true) } func GCPSchema(machineTypesDisplay, regionsDisplay map[string]string, machineTypes []string, additionalParams, update bool, shootAndSeedFeatureFlag bool, assuredWorkloads bool) *map[string]interface{} { properties := NewProvisioningProperties(machineTypesDisplay, regionsDisplay, machineTypes, GcpRegions(assuredWorkloads), update) - return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties(), true, shootAndSeedFeatureFlag) + return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties(), true, shootAndSeedFeatureFlag, false) } func AWSSchema(machineTypesDisplay, regionsDisplay map[string]string, machineTypes []string, additionalParams, update bool, euAccessRestricted bool, shootAndSeedSameRegion bool) *map[string]interface{} { properties := NewProvisioningProperties(machineTypesDisplay, regionsDisplay, machineTypes, AWSRegions(euAccessRestricted), update) - return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties(), true, shootAndSeedSameRegion) + return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties(), true, shootAndSeedSameRegion, false) } func AzureSchema(machineTypesDisplay, regionsDisplay map[string]string, machineTypes []string, additionalParams, update bool, euAccessRestricted bool, shootAndSeedFeatureFlag bool) *map[string]interface{} { properties := NewProvisioningProperties(machineTypesDisplay, regionsDisplay, machineTypes, AzureRegions(euAccessRestricted), update) - return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties(), true, shootAndSeedFeatureFlag) + return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties(), true, shootAndSeedFeatureFlag, false) } func AzureLiteSchema(machineTypesDisplay, regionsDisplay map[string]string, machineTypes []string, additionalParams, update bool, euAccessRestricted bool, shootAndSeedFeatureFlag bool) *map[string]interface{} { @@ -404,7 +404,7 @@ func AzureLiteSchema(machineTypesDisplay, regionsDisplay map[string]string, mach properties.AutoScalerMin.Default = 2 } - return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties(), true, shootAndSeedFeatureFlag) + return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties(), true, shootAndSeedFeatureFlag, false) } func FreemiumSchema(provider pkg.CloudProvider, regionsDisplay map[string]string, additionalParams, update bool, euAccessRestricted bool) *map[string]interface{} { @@ -435,7 +435,7 @@ func FreemiumSchema(provider pkg.CloudProvider, regionsDisplay map[string]string properties.Modules = NewModulesSchema() } - return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties(), false, false) + return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties(), false, false, false) } func TrialSchema(additionalParams, update bool) *map[string]interface{} { @@ -451,7 +451,7 @@ func TrialSchema(additionalParams, update bool) *map[string]interface{} { return empty() } - return createSchemaWithProperties(properties, additionalParams, update, requiredTrialSchemaProperties(), false, false) + return createSchemaWithProperties(properties, additionalParams, update, requiredTrialSchemaProperties(), false, false, false) } func OwnClusterSchema(update bool) *map[string]interface{} { @@ -465,10 +465,10 @@ func OwnClusterSchema(update bool) *map[string]interface{} { } if update { - return createSchemaWith(properties.UpdateProperties, update, requiredOwnClusterSchemaProperties()) + return createSchemaWith(properties.UpdateProperties, update, requiredOwnClusterSchemaProperties(), false) } else { properties.Modules = NewModulesSchema() - return createSchemaWith(properties, update, requiredOwnClusterSchemaProperties()) + return createSchemaWith(properties, update, requiredOwnClusterSchemaProperties(), false) } } @@ -477,7 +477,7 @@ func empty() *map[string]interface{} { return &empty } -func createSchemaWithProperties(properties ProvisioningProperties, additionalParams, update bool, required []string, shootAndSeedSameRegion bool, shootAndSeedFeatureFlag bool) *map[string]interface{} { +func createSchemaWithProperties(properties ProvisioningProperties, additionalParams, update bool, required []string, shootAndSeedSameRegion bool, shootAndSeedFeatureFlag bool, loadCurrentConfig bool) *map[string]interface{} { if additionalParams { properties.IncludeAdditional() } @@ -487,14 +487,14 @@ func createSchemaWithProperties(properties ProvisioningProperties, additionalPar } if update { - return createSchemaWith(properties.UpdateProperties, update, required) + return createSchemaWith(properties.UpdateProperties, update, required, loadCurrentConfig) } else { - return createSchemaWith(properties, update, required) + return createSchemaWith(properties, update, required, loadCurrentConfig) } } -func createSchemaWith(properties interface{}, update bool, requiered []string) *map[string]interface{} { - schema := NewSchema(properties, update, requiered) +func createSchemaWith(properties interface{}, update bool, requiered []string, loadCurrentConfig bool) *map[string]interface{} { + schema := NewSchema(properties, update, requiered, loadCurrentConfig) return unmarshalSchema(schema) } @@ -552,7 +552,7 @@ func Plans(plans PlansConfig, provider pkg.CloudProvider, includeAdditionalParam FreemiumPlanID: defaultServicePlan(FreemiumPlanID, FreemiumPlanName, plans, freemiumSchema, FreemiumSchema(provider, azureRegionsDisplay, includeAdditionalParamsInSchema, true, euAccessRestricted)), TrialPlanID: defaultServicePlan(TrialPlanID, TrialPlanName, plans, trialSchema, TrialSchema(includeAdditionalParamsInSchema, true)), OwnClusterPlanID: defaultServicePlan(OwnClusterPlanID, OwnClusterPlanName, plans, ownClusterSchema, OwnClusterSchema(true)), - PreviewPlanID: defaultServicePlan(PreviewPlanID, PreviewPlanName, plans, previewCatalogSchema, AWSSchema(awsMachinesDisplay, awsRegionsDisplay, awsMachineNames, includeAdditionalParamsInSchema, true, euAccessRestricted, false)), + PreviewPlanID: defaultServicePlan(PreviewPlanID, PreviewPlanName, plans, previewCatalogSchema, PreviewSchema(awsMachinesDisplay, awsRegionsDisplay, awsMachineNames, includeAdditionalParamsInSchema, true, euAccessRestricted)), } if len(sapConvergedCloudRegions) != 0 { diff --git a/internal/broker/plans_schema.go b/internal/broker/plans_schema.go index 08b49a66d9..46f545e9e5 100644 --- a/internal/broker/plans_schema.go +++ b/internal/broker/plans_schema.go @@ -18,6 +18,8 @@ type RootSchema struct { ShowFormView bool `json:"_show_form_view"` // Specifies in what order properties will be displayed on the form ControlsOrder []string `json:"_controlsOrder"` + // Specified to true loads current instance configuration into the update instance schema + LoadCurrentConfig *bool `json:"_load_current_config,omitempty"` } type ProvisioningProperties struct { @@ -356,7 +358,7 @@ func NewOIDCSchema() *OIDCType { } } -func NewSchema(properties interface{}, update bool, required []string) *RootSchema { +func NewSchema(properties interface{}, update bool, required []string, loadCurrentConfig bool) *RootSchema { schema := &RootSchema{ Schema: "http://json-schema.org/draft-04/schema#", Type: Type{ @@ -371,6 +373,10 @@ func NewSchema(properties interface{}, update bool, required []string) *RootSche schema.Required = []string{} } + if loadCurrentConfig { + schema.LoadCurrentConfig = &loadCurrentConfig + } + return schema } From 89d52511e9b49a1f62c616ecc9ccb5c799a4d7d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaros=C5=82aw=20Pieszka?= Date: Mon, 20 Jan 2025 16:21:12 +0100 Subject: [PATCH 2/3] Fixing annotation for KIM in `taskrun` (#1656) Annotation for KIM --- common/orchestration/resolver.go | 18 ++++++----- common/orchestration/resolver_test.go | 43 ++++++++++++++++++++++----- 2 files changed, 47 insertions(+), 14 deletions(-) diff --git a/common/orchestration/resolver.go b/common/orchestration/resolver.go index 95056b4395..2682a7300b 100644 --- a/common/orchestration/resolver.go +++ b/common/orchestration/resolver.go @@ -39,10 +39,11 @@ type GardenerRuntimeResolver struct { } const ( - globalAccountLabel = "account" - subAccountLabel = "subaccount" - runtimeIDAnnotation = "kcp.provisioner.kyma-project.io/runtime-id" - maintenanceWindowFormat = "150405-0700" + globalAccountLabel = "account" + subAccountLabel = "subaccount" + runtimeIDAnnotationProvisioner = "kcp.provisioner.kyma-project.io/runtime-id" + runtimeIDAnnotationKim = "infrastructuremanager.kyma-project.io/runtime-id" + maintenanceWindowFormat = "150405-0700" ) // NewGardenerRuntimeResolver constructs a GardenerRuntimeResolver with the mandatory input parameters. @@ -136,10 +137,13 @@ func (resolver *GardenerRuntimeResolver) resolveRuntimeTarget(rt RuntimeTarget, // Iterate over all shoots. Evaluate target specs. If multiple are specified, all must match for a given shoot. for _, s := range shoots { shoot := &gardener.Shoot{Unstructured: s} - runtimeID := shoot.GetAnnotations()[runtimeIDAnnotation] + runtimeID := shoot.GetAnnotations()[runtimeIDAnnotationProvisioner] if runtimeID == "" { - resolver.logger.Error(fmt.Sprintf("Failed to get runtimeID from %s annotation for Shoot %s", runtimeIDAnnotation, shoot.GetName())) - continue + runtimeID = shoot.GetAnnotations()[runtimeIDAnnotationKim] + if runtimeID == "" { + resolver.logger.Error(fmt.Sprintf("Failed to get runtimeID neither from %s annotation nor from %s for Shoot %s", runtimeIDAnnotationProvisioner, runtimeIDAnnotationKim, shoot.GetName())) + continue + } } r, ok := resolver.getRuntime(runtimeID) if !ok { diff --git a/common/orchestration/resolver_test.go b/common/orchestration/resolver_test.go index 54ad0fe105..d50cecb8ed 100644 --- a/common/orchestration/resolver_test.go +++ b/common/orchestration/resolver_test.go @@ -256,17 +256,17 @@ func TestResolver_Resolve_StorageFailure(t *testing.T) { } var ( - shoot1 = fixShoot(1, globalAccountID1, region1) - shoot2 = fixShoot(2, globalAccountID1, region2) - shoot3 = fixShoot(3, globalAccountID2, region3) - shoot4 = fixShoot(4, globalAccountID3, region1) + shoot1 = fixShootForKIM(1, globalAccountID1, region1) + shoot2 = fixShootForKIM(2, globalAccountID1, region2) + shoot3 = fixShootForKIM(3, globalAccountID2, region3) + shoot4 = fixShootForKIM(4, globalAccountID3, region1) shoot5 = fixShoot(5, globalAccountID1, region1) shoot6 = fixShoot(6, globalAccountID1, region1) // shoot7 is purposefully missing to test missing cluster scenario shoot8 = fixShoot(8, globalAccountID1, region1) shoot9 = fixShoot(9, globalAccountID1, region1) - shoot10 = fixShoot(10, globalAccountID1, region1) - shoot11 = fixShoot(11, globalAccountID1, region1) + shoot10 = fixShootForKIM(10, globalAccountID1, region1) + shoot11 = fixShootForKIM(11, globalAccountID1, region1) runtime1 = fixRuntimeDTO(1, globalAccountID1, plan2, runtimeOpState{provision: string(brokerapi.Succeeded)}) runtime2 = fixRuntimeDTO(2, globalAccountID1, plan1, runtimeOpState{provision: string(brokerapi.Succeeded)}) @@ -294,7 +294,36 @@ func fixShoot(id int, globalAccountID, region string) unstructured.Unstructured subAccountLabel: fmt.Sprintf("subaccount-id-%d", id), }, "annotations": map[string]interface{}{ - runtimeIDAnnotation: fmt.Sprintf("runtime-id-%d", id), + runtimeIDAnnotationProvisioner: fmt.Sprintf("runtime-id-%d", id), + }, + }, + "spec": map[string]interface{}{ + "region": region, + "maintenance": map[string]interface{}{ + "timeWindow": map[string]interface{}{ + "begin": "030000+0000", + "end": "040000+0000", + }, + }, + }, + }, + } +} + +func fixShootForKIM(id int, globalAccountID, region string) unstructured.Unstructured { + return unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "core.gardener.cloud/v1beta1", + "kind": "Shoot", + "metadata": map[string]interface{}{ + "name": fmt.Sprintf("shoot%d", id), + "namespace": shootNamespace, + "labels": map[string]interface{}{ + globalAccountLabel: globalAccountID, + subAccountLabel: fmt.Sprintf("subaccount-id-%d", id), + }, + "annotations": map[string]interface{}{ + runtimeIDAnnotationKim: fmt.Sprintf("runtime-id-%d", id), }, }, "spec": map[string]interface{}{ From 1acd89897b3d0f7b58a91ca2c460e0b973f5987b Mon Sep 17 00:00:00 2001 From: Kyma gopher bot <123084774+kyma-gopher-bot@users.noreply.github.com> Date: Mon, 20 Jan 2025 16:49:46 +0100 Subject: [PATCH 3/3] Bump sec-scanners-config.yaml, KEB images and Chart to 1.11.12 (#1657) --- resources/keb/Chart.yaml | 4 ++-- resources/keb/values.yaml | 20 ++++++++-------- sec-scanners-config.yaml | 24 +++++++++---------- .../kyma-environment-broker-archiver.yaml | 2 +- .../kyma-environments-cleanup-job.yaml | 2 +- 5 files changed, 26 insertions(+), 26 deletions(-) diff --git a/resources/keb/Chart.yaml b/resources/keb/Chart.yaml index 797a0aaa51..3a264c20ce 100644 --- a/resources/keb/Chart.yaml +++ b/resources/keb/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 -appVersion: "1.11.11" +appVersion: "1.11.12" name: keb description: description: Kyma Environment Broker Helm chart for Kubernetes -version: 1.11.11 +version: 1.11.12 type: application diff --git a/resources/keb/values.yaml b/resources/keb/values.yaml index e42e93dafb..210e4179b9 100644 --- a/resources/keb/values.yaml +++ b/resources/keb/values.yaml @@ -9,34 +9,34 @@ global: path: europe-docker.pkg.dev/kyma-project/prod kyma_environment_broker: dir: - version: "1.11.11" + version: "1.11.12" kyma_environment_broker_schema_migrator: dir: - version: 1.11.11 + version: 1.11.12 kyma_environments_subaccount_cleanup_job: dir: - version: "1.11.11" + version: "1.11.12" kyma_environment_trial_cleanup_job: dir: - version: "1.11.11" + version: "1.11.12" kyma_environment_expirator_job: dir: - version: "1.11.11" + version: "1.11.12" kyma_environment_deprovision_retrigger_job: dir: - version: "1.11.11" + version: "1.11.12" kyma_environment_runtime_reconciler: dir: - version: "1.11.11" + version: "1.11.12" kyma_environment_subaccount_sync: dir: - version: "1.11.11" + version: "1.11.12" kyma_environment_globalaccounts: dir: - version: "1.11.11" + version: "1.11.12" kyma_environment_service_binding_cleanup_job: dir: - version: 1.11.11 + version: 1.11.12 kyma_environment_broker: serviceAccountName: "kcp-kyma-environment-broker" diff --git a/sec-scanners-config.yaml b/sec-scanners-config.yaml index 063b1703cf..ea9d2b3c3c 100644 --- a/sec-scanners-config.yaml +++ b/sec-scanners-config.yaml @@ -1,17 +1,17 @@ module-name: kyma-environment-broker -rc-tag: 1.11.11 +rc-tag: 1.11.12 protecode: - - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-broker:1.11.11 - - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-deprovision-retrigger-job:1.11.11 - - europe-docker.pkg.dev/kyma-project/prod/kyma-environments-cleanup-job:1.11.11 - - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-runtime-reconciler:1.11.11 - - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-archiver-job:1.11.11 - - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-expirator-job:1.11.11 - - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-subaccount-cleanup-job:1.11.11 - - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-subaccount-sync:1.11.11 - - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-broker-globalaccounts:1.11.11 - - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-broker-schema-migrator:1.11.11 - - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-service-binding-cleanup-job:1.11.11 + - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-broker:1.11.12 + - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-deprovision-retrigger-job:1.11.12 + - europe-docker.pkg.dev/kyma-project/prod/kyma-environments-cleanup-job:1.11.12 + - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-runtime-reconciler:1.11.12 + - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-archiver-job:1.11.12 + - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-expirator-job:1.11.12 + - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-subaccount-cleanup-job:1.11.12 + - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-subaccount-sync:1.11.12 + - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-broker-globalaccounts:1.11.12 + - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-broker-schema-migrator:1.11.12 + - europe-docker.pkg.dev/kyma-project/prod/kyma-environment-service-binding-cleanup-job:1.11.12 whitesource: language: golang-mod subprojects: false diff --git a/utils/archiver/kyma-environment-broker-archiver.yaml b/utils/archiver/kyma-environment-broker-archiver.yaml index 0142fc17dd..993a2b0673 100644 --- a/utils/archiver/kyma-environment-broker-archiver.yaml +++ b/utils/archiver/kyma-environment-broker-archiver.yaml @@ -74,4 +74,4 @@ spec: template: spec: containers: - - image: europe-docker.pkg.dev/kyma-project/prod/kyma-environment-archiver-job:1.11.11 + - image: europe-docker.pkg.dev/kyma-project/prod/kyma-environment-archiver-job:1.11.12 diff --git a/utils/kyma-environments-cleanup-job/kyma-environments-cleanup-job.yaml b/utils/kyma-environments-cleanup-job/kyma-environments-cleanup-job.yaml index 1ba659d1f5..9acbb23245 100644 --- a/utils/kyma-environments-cleanup-job/kyma-environments-cleanup-job.yaml +++ b/utils/kyma-environments-cleanup-job/kyma-environments-cleanup-job.yaml @@ -28,7 +28,7 @@ spec: containers: - name: kyma-environments-cleanup command: ["/bin/main"] - image: europe-docker.pkg.dev/kyma-project/prod/kyma-environments-cleanup-job:1.11.11 + image: europe-docker.pkg.dev/kyma-project/prod/kyma-environments-cleanup-job:1.11.12 imagePullPolicy: IfNotPresent env: - name: DATABASE_EMBEDDED