apiVersion: config.ocm.software/v1alpha1 kind: ConfigData metadata: name: ocm-config # Do I need a namespace config, where's the spec? configuration: defaults: sap: {} defaults: <<<: (( &template &default )) dmi: <<<: (( &default )) mcprovisioner: <<<: (( &default )) credentialRotation: <<<: (( &default )) dry: (( &default ( true ) )) verbose: (( &default ( false ) )) toggles: <<<: (( &default )) credentialRotation: (( &default ( false ) )) rules: - value: (( merge( sap, *defaults ) )) file: &values_yaml dmi-multicloud-service-provisioner/values.yaml path: sap schema: type: object additionalProperties: false properties: &sap sap: type: object additionalProperties: false properties: &csi csi: type: object additionalProperties: false properties: &landscape landscape: type: object additionalProperties: false properties: &metadata metadata: type: object additionalProperties: false properties: &cloudProvider cloudProvider: &stringMinLength1 type: string minLength: 1 &clusterName clusterName: *stringMinLength1 &deploymentStencil deploymentStencil: *stringMinLength1 &k8sType k8sType: *stringMinLength1 &project project: *stringMinLength1 ®ion region: *stringMinLength1 required: - *cloudProvider - *clusterName - *deploymentStencil - *k8sType - *project - *region &network network: type: object additionalProperties: false properties: &securityGroupId securityGroupId: *stringMinLength1 &vpcId vpcId: *stringMinLength1 &zoneNetworkInfo zoneNetworkInfo: type: array items: type: object additionalProperties: false properties: &csiZoneName name: *stringMinLength1 required: - *csiZoneName minItems: 1 required: - *securityGroupId - *vpcId - *zoneNetworkInfo &secrets secrets: type: object additionalProperties: false properties: &dockersecret dockersecret: type: string format: base64 required: - *dockersecret if: properties: landscape: properties: metadata: properties: cloudProvider: const: aws then: properties: network: required: - *securityGroupId - *vpcId - *zoneNetworkInfo required: &metadataNetworkSecrets - *metadata - *network - *secrets else: required: *metadataNetworkSecrets required: - *landscape &dmi dmi: type: object additionalProperties: false properties: mcprovisioner: type: object additionalProperties: false properties: &aws aws: type: object additionalProperties: false properties: &redis redis: type: object additionalProperties: false properties: &zoneNetworkInfo zoneNetworkInfo: type: object additionalProperties: false properties: &dmiZoneName name: *stringMinLength1 &cidr cidr: type: string format: ipv4-cidr required: - *dmiZoneName - *cidr required: - *zoneNetworkInfo required: - *redis &credentialRotation credentialRotation: type: object additionalProperties: false properties: dry: type: boolean projects: type: array items: *stringMinLength1 minItems: 1 verbose: type: boolean &gcp gcp: type: object additionalProperties: false properties: &projectId projectId: *stringMinLength1 required: - *projectId &toggles toggles: type: object additionalProperties: false properties: credentialRotation: *stringMinLength1 if: properties: *csi: properties: *landscape: properties: *metadata: properties: *cloudProvider: const: "gcp" then: properties: *dmi: required: - *gcp required: &dmiAndCsiRequired - *csi - *dmi else: if: properties: *csi: properties: *landscape: properties: *metadata: properties: *cloudProvider: const: "aws" then: properties: *dmi: required: - *aws required: &dmiAndCsiRequired else: required: - *csi required: - *sap localization: - file: *values_yaml mapping: path: crossplane.image transform: |- package main import ( "encoding/json" "regexp" ) out: string for x in component.resources { if x.name == "crossplane-image" { out: json.Marshal( { repository: regexp.ReplaceAll( ":[^:]+", x.access.imageReference, "" ) tag: x.version } ) } } - file: *values_yaml image: hyperscalers.aws.providers.aws-service.package resource: name: aws-provider-image - file: *values_yaml image: hyperscalers.ns2.providers.ns2-service.package resource: name: aws-provider-image - file: *values_yaml image: hyperscalers.azure.providers.azure-service.package resource: name: azure-provider-image - file: *values_yaml image: hyperscalers.gcp.providers.gcp-service.package resource: name: gcp-provider-image - file: *values_yaml image: hyperscalers.aws.providers.sql.package resource: name: sql-provider-image