diff --git a/charts/kubedb-provider-aws/Chart.yaml b/charts/kubedb-provider-aws/Chart.yaml index c93e96c35..d686f117d 100755 --- a/charts/kubedb-provider-aws/Chart.yaml +++ b/charts/kubedb-provider-aws/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: kubedb-provider-aws description: A Helm chart for KubeDB AWS Provider for Crossplane type: application -version: v0.0.1 -appVersion: v0.0.1 +version: v2023.12.11 +appVersion: v0.0.2 home: https://github.com/kubedb/provider-aws icon: https://cdn.appscode.com/images/products/searchlight/icons/android-icon-192x192.png sources: diff --git a/charts/kubedb-provider-aws/README.md b/charts/kubedb-provider-aws/README.md index a52188c2c..4562f9f16 100644 --- a/charts/kubedb-provider-aws/README.md +++ b/charts/kubedb-provider-aws/README.md @@ -7,8 +7,8 @@ ```bash $ helm repo add appscode https://charts.appscode.com/stable/ $ helm repo update -$ helm search repo appscode/kubedb-provider-aws --version=v0.0.1 -$ helm upgrade -i kubedb-provider-aws appscode/kubedb-provider-aws -n crossplane-system --create-namespace --version=v0.0.1 +$ helm search repo appscode/kubedb-provider-aws --version=v2023.12.11 +$ helm upgrade -i kubedb-provider-aws appscode/kubedb-provider-aws -n crossplane-system --create-namespace --version=v2023.12.11 ``` ## Introduction @@ -24,7 +24,7 @@ This chart deploys a KubeDB AWS provider on a [Kubernetes](http://kubernetes.io) To install/upgrade the chart with the release name `kubedb-provider-aws`: ```bash -$ helm upgrade -i kubedb-provider-aws appscode/kubedb-provider-aws -n crossplane-system --create-namespace --version=v0.0.1 +$ helm upgrade -i kubedb-provider-aws appscode/kubedb-provider-aws -n crossplane-system --create-namespace --version=v2023.12.11 ``` The command deploys a KubeDB AWS provider on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. @@ -74,12 +74,12 @@ The following table lists the configurable parameters of the `kubedb-provider-aw Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example: ```bash -$ helm upgrade -i kubedb-provider-aws appscode/kubedb-provider-aws -n crossplane-system --create-namespace --version=v0.0.1 --set replicaCount=1 +$ helm upgrade -i kubedb-provider-aws appscode/kubedb-provider-aws -n crossplane-system --create-namespace --version=v2023.12.11 --set replicaCount=1 ``` Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example: ```bash -$ helm upgrade -i kubedb-provider-aws appscode/kubedb-provider-aws -n crossplane-system --create-namespace --version=v0.0.1 --values values.yaml +$ helm upgrade -i kubedb-provider-aws appscode/kubedb-provider-aws -n crossplane-system --create-namespace --version=v2023.12.11 --values values.yaml ``` diff --git a/charts/kubedb-provider-aws/crds/aws.kubedb.com_providerconfigs.yaml b/charts/kubedb-provider-aws/crds/aws.kubedb.com_providerconfigs.yaml index 5e888f6c6..3b6ce0235 100644 --- a/charts/kubedb-provider-aws/crds/aws.kubedb.com_providerconfigs.yaml +++ b/charts/kubedb-provider-aws/crds/aws.kubedb.com_providerconfigs.yaml @@ -2,14 +2,14 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: providerconfigs.aws.kubedb.com spec: group: aws.kubedb.com names: categories: - crossplane - - provider + - providerconfig - aws kind: ProviderConfig listKind: ProviderConfigList @@ -21,14 +21,14 @@ spec: - jsonPath: .metadata.creationTimestamp name: AGE type: date - - jsonPath: .spec.credentials.secretRef.name - name: SECRET-NAME + - jsonPath: .spec.source + name: SOURCE priority: 1 type: string name: v1beta1 schema: openAPIV3Schema: - description: A ProviderConfig configures a AWS provider. + description: A ProviderConfig configures the AWS provider. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -45,6 +45,52 @@ spec: spec: description: A ProviderConfigSpec defines the desired state of a ProviderConfig. properties: + assumeRoleChain: + description: AssumeRoleChain defines the options for assuming an IAM + role + items: + description: AssumeRoleOptions define the options for assuming an + IAM Role Fields are similar to the STS AssumeRoleOptions in the + AWS SDK + properties: + externalID: + description: ExternalID is the external ID used when assuming + role. + type: string + roleARN: + description: AssumeRoleARN to assume with provider credentials + type: string + tags: + description: Tags is list of session tags that you want to pass. + Each session tag consists of a key name and an associated + value. For more information about session tags, see Tagging + STS Sessions (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html). + items: + description: Tag is session tag that can be used to assume + an IAM Role + properties: + key: + description: Name of the tag. Key is a required field + type: string + value: + description: Value of the tag. Value is a required field + type: string + required: + - key + - value + type: object + type: array + transitiveTagKeys: + description: TransitiveTagKeys is a list of keys for session + tags that you want to set as transitive. If you set a tag + key as transitive, the corresponding key and value passes + to subsequent sessions in a role chain. For more information, + see Chaining Roles with Session Tags (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining). + items: + type: string + type: array + type: object + type: array credentials: description: Credentials required to authenticate to this provider. properties: @@ -91,13 +137,176 @@ spec: enum: - None - Secret - - InjectedIdentity - - Environment - - Filesystem + - IRSA + - WebIdentity + - Upbound type: string + upbound: + description: Upbound defines the options for authenticating using + Upbound as an identity provider. + properties: + webIdentity: + description: WebIdentity defines the options for assuming + an IAM role with a Web Identity. + properties: + roleARN: + description: AssumeRoleARN to assume with provider credentials + type: string + roleSessionName: + description: RoleSessionName is the session name, if you + wish to uniquely identify this session. + type: string + type: object + type: object + webIdentity: + description: WebIdentity defines the options for assuming an IAM + role with a Web Identity. + properties: + roleARN: + description: AssumeRoleARN to assume with provider credentials + type: string + roleSessionName: + description: RoleSessionName is the session name, if you wish + to uniquely identify this session. + type: string + type: object required: - source type: object + endpoint: + description: Endpoint is where you can override the default endpoint + configuration of AWS calls made by the provider. + properties: + hostnameImmutable: + description: "Specifies if the endpoint's hostname can be modified + by the SDK's API client. \n If the hostname is mutable the SDK + API clients may modify any part of the hostname based on the + requirements of the API, (e.g. adding, or removing content in + the hostname). Such as, Amazon S3 API client prefixing \"bucketname\" + to the hostname, or changing the hostname service name component + from \"s3.\" to \"s3-accesspoint.dualstack.\" for the dualstack + endpoint of an S3 Accesspoint resource. \n Care should be taken + when providing a custom endpoint for an API. If the endpoint + hostname is mutable, and the client cannot modify the endpoint + correctly, the operation call will most likely fail, or have + undefined behavior. \n If hostname is immutable, the SDK API + clients will not modify the hostname of the URL. This may cause + the API client not to function correctly if the API requires + the operation specific hostname values to be used by the client. + \n This flag does not modify the API client's behavior if this + endpoint will be used instead of Endpoint Discovery, or if the + endpoint will be used to perform Endpoint Discovery. That behavior + is configured via the API Client's Options. Note that this is + effective only for resources that use AWS SDK v2." + type: boolean + partitionId: + description: The AWS partition the endpoint belongs to. + type: string + services: + description: Specifies the list of services you want endpoint + to be used for + items: + type: string + type: array + signingMethod: + description: The signing method that should be used for signing + the requests to the endpoint. + type: string + signingName: + description: The service name that should be used for signing + the requests to the endpoint. + type: string + signingRegion: + description: The region that should be used for signing the request + to the endpoint. For IAM, which doesn't have any region, us-east-1 + is used to sign the requests, which is the only signing region + of IAM. + type: string + source: + description: The source of the Endpoint. By default, this will + be ServiceMetadata. When providing a custom endpoint, you should + set the source as Custom. If source is not provided when providing + a custom endpoint, the SDK may not perform required host mutations + correctly. Source should be used along with HostnameImmutable + property as per the usage requirement. Note that this is effective + only for resources that use AWS SDK v2. + enum: + - ServiceMetadata + - Custom + type: string + url: + description: URL lets you configure the endpoint URL to be used + in SDK calls. + properties: + dynamic: + description: Dynamic lets you configure the behavior of endpoint + URL resolver. + properties: + host: + description: Host is the address of the main host that + the resolver will use to prepend protocol, service and + region configurations. For example, the final URL for + EC2 in us-east-1 looks like https://ec2.us-east-1.amazonaws.com + You would need to use "amazonaws.com" as Host and "https" + as protocol to have the resolver construct it. + type: string + protocol: + description: Protocol is the HTTP protocol that will be + used in the URL. Currently, only http and https are + supported. + enum: + - http + - https + type: string + required: + - host + - protocol + type: object + static: + description: Static is the full URL you'd like the AWS SDK + to use. Recommended for using tools like localstack where + a single host is exposed for all services and regions. + type: string + type: + description: You can provide a static URL that will be used + regardless of the service and region by choosing Static + type. Alternatively, you can provide configuration for dynamically + resolving the URL with the config you provide once you set + the type as Dynamic. + enum: + - Static + - Dynamic + type: string + required: + - type + type: object + required: + - url + type: object + s3_use_path_style: + description: Whether to enable the request to use path-style addressing, + i.e., https://s3.amazonaws.com/BUCKET/KEY. + type: boolean + skip_credentials_validation: + description: Whether to skip credentials validation via the STS API. + This can be useful for testing and for AWS API implementations that + do not have STS available. + type: boolean + skip_metadata_api_check: + description: Whether to skip the AWS Metadata API check Useful for + AWS API implementations that do not have a metadata API endpoint. + type: boolean + skip_region_validation: + description: Whether to skip validation of provided region name. Useful + for AWS-like implementations that use their own region names or + to bypass the validation for regions that aren't publicly available + yet. + type: boolean + skip_requesting_account_id: + description: Whether to skip requesting the account ID. Useful for + AWS API implementations that do not have the IAM, STS API, or metadata + API + type: boolean required: - credentials type: object @@ -137,6 +346,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map users: description: Users of this provider configuration. format: int64 diff --git a/charts/kubedb-provider-aws/crds/aws.kubedb.com_providerconfigusages.yaml b/charts/kubedb-provider-aws/crds/aws.kubedb.com_providerconfigusages.yaml index e6132749f..13e46a315 100644 --- a/charts/kubedb-provider-aws/crds/aws.kubedb.com_providerconfigusages.yaml +++ b/charts/kubedb-provider-aws/crds/aws.kubedb.com_providerconfigusages.yaml @@ -2,14 +2,14 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: providerconfigusages.aws.kubedb.com spec: group: aws.kubedb.com names: categories: - crossplane - - provider + - providerconfig - aws kind: ProviderConfigUsage listKind: ProviderConfigUsageList diff --git a/charts/kubedb-provider-aws/crds/aws.kubedb.com_storeconfigs.yaml b/charts/kubedb-provider-aws/crds/aws.kubedb.com_storeconfigs.yaml index a559e709e..c70f462ef 100644 --- a/charts/kubedb-provider-aws/crds/aws.kubedb.com_storeconfigs.yaml +++ b/charts/kubedb-provider-aws/crds/aws.kubedb.com_storeconfigs.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: storeconfigs.aws.kubedb.com spec: group: aws.kubedb.com @@ -152,146 +152,6 @@ spec: - Vault - Plugin type: string - vault: - description: 'Vault configures a Vault secret store. Deprecated: This - API is scheduled to be removed in a future release. Vault should - be used as a plugin going forward. See https://github.com/crossplane-contrib/ess-plugin-vault - for more information.' - properties: - auth: - description: Auth configures an authentication method for Vault. - properties: - method: - description: Method configures which auth method will be used. - type: string - token: - description: Token configures Token Auth for Vault. - properties: - env: - description: Env is a reference to an environment variable - that contains credentials that must be used to connect - to the provider. - properties: - name: - description: Name is the name of an environment variable. - type: string - required: - - name - type: object - fs: - description: Fs is a reference to a filesystem location - that contains credentials that must be used to connect - to the provider. - properties: - path: - description: Path is a filesystem path. - type: string - required: - - path - type: object - secretRef: - description: A SecretRef is a reference to a secret key - that contains the credentials that must be used to connect - to the provider. - properties: - key: - description: The key to select. - type: string - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - key - - name - - namespace - type: object - source: - description: Source of the credentials. - enum: - - None - - Secret - - Environment - - Filesystem - type: string - required: - - source - type: object - required: - - method - type: object - caBundle: - description: CABundle configures CA bundle for Vault Server. - properties: - env: - description: Env is a reference to an environment variable - that contains credentials that must be used to connect to - the provider. - properties: - name: - description: Name is the name of an environment variable. - type: string - required: - - name - type: object - fs: - description: Fs is a reference to a filesystem location that - contains credentials that must be used to connect to the - provider. - properties: - path: - description: Path is a filesystem path. - type: string - required: - - path - type: object - secretRef: - description: A SecretRef is a reference to a secret key that - contains the credentials that must be used to connect to - the provider. - properties: - key: - description: The key to select. - type: string - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - key - - name - - namespace - type: object - source: - description: Source of the credentials. - enum: - - None - - Secret - - Environment - - Filesystem - type: string - required: - - source - type: object - mountPath: - description: MountPath is the mount path of the KV secrets engine. - type: string - server: - description: Server is the url of the Vault server, e.g. "https://vault.acme.org" - type: string - version: - default: v2 - description: Version of the KV Secrets engine of Vault. https://www.vaultproject.io/docs/secrets/kv - type: string - required: - - auth - - mountPath - - server - type: object required: - defaultScope type: object @@ -331,6 +191,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clusterinstances.yaml b/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clusterinstances.yaml index d3d0af53d..96bf8f8c6 100644 --- a/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clusterinstances.yaml +++ b/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clusterinstances.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: clusterinstances.docdb.aws.kubedb.com spec: group: docdb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -209,21 +209,105 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + applyImmediately: + description: Specifies whether any database modifications are + applied immediately, or during the next maintenance window. + Default isfalse. + type: boolean + autoMinorVersionUpgrade: + description: This parameter does not apply to Amazon DocumentDB. + Amazon DocumentDB does not perform minor version upgrades regardless + of the value set (see docs). Default true. + type: boolean + availabilityZone: + description: The EC2 Availability Zone that the DB instance is + created in. See docs about the details. + type: string + caCertIdentifier: + description: The identifier of the CA certificate for the DB instance. + type: string + enablePerformanceInsights: + description: A value that indicates whether to enable Performance + Insights for the DB Instance. Default false. See [docs] (https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html) + about the details. + type: boolean + engine: + description: 'The name of the database engine to be used for the + DocumentDB instance. Defaults to docdb. Valid Values: docdb.' + type: string + instanceClass: + description: The instance class to use. For details on CPU and + memory, see Scaling for DocumentDB Instances. DocumentDB currently + supports the below instance classes. Please see AWS Documentation + for complete details. + type: string + performanceInsightsKmsKeyId: + description: The KMS key identifier is the key ARN, key ID, alias + ARN, or alias name for the KMS key. If you do not specify a + value for PerformanceInsightsKMSKeyId, then Amazon DocumentDB + uses your default KMS key. + type: string + preferredMaintenanceWindow: + description: 'The window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". + Eg: "Mon:00:00-Mon:03:00".' + type: string + promotionTier: + description: Default 0. Failover Priority setting on instance + level. The reader who has lower tier has higher priority to + get promoter to writer. + type: number + tags: + additionalProperties: + type: string + description: A map of tags to assign to the instance. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -262,42 +346,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -396,10 +444,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: instanceClass is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.instanceClass) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.instanceClass is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.instanceClass) + || (has(self.initProvider) && has(self.initProvider.instanceClass))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ClusterInstanceStatus defines the observed state of ClusterInstance. properties: @@ -542,6 +593,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clusterparametergroups.yaml b/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clusterparametergroups.yaml index adee86d00..30a6c2e1c 100644 --- a/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clusterparametergroups.yaml +++ b/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clusterparametergroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: clusterparametergroups.docdb.aws.kubedb.com spec: group: docdb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -90,9 +90,6 @@ spec: value: description: The value of the DocumentDB parameter. type: string - required: - - name - - value type: object type: array region: @@ -114,21 +111,84 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + description: + description: The description of the DocumentDB cluster parameter + group. + type: string + family: + description: The family of the DocumentDB cluster parameter group. + type: string + parameter: + description: A list of DocumentDB parameters to apply. Setting + parameters to system default values may show a difference on + imported resources. + items: + properties: + applyMethod: + description: Valid values are immediate and pending-reboot. + Defaults to pending-reboot. + type: string + name: + description: The name of the DocumentDB cluster parameter + group. + type: string + value: + description: The value of the DocumentDB parameter. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -167,42 +227,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -301,10 +325,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: family is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.family) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.family is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.family) + || (has(self.initProvider) && has(self.initProvider.family))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ClusterParameterGroupStatus defines the observed state of ClusterParameterGroup. @@ -391,6 +418,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clusters.yaml b/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clusters.yaml index c4b9f2445..68bb036af 100644 --- a/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clusters.yaml +++ b/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clusters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: clusters.docdb.aws.kubedb.com spec: group: docdb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -118,6 +118,79 @@ spec: description: The ARN for the KMS encryption key. When specifying kms_key_id, storage_encrypted needs to be set to true. type: string + kmsKeyIdRef: + description: Reference to a Key in kms to populate kmsKeyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + kmsKeyIdSelector: + description: Selector for a Key in kms to populate kmsKeyId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object masterPasswordSecretRef: description: Password for the master DB user. Note that this may show up in logs, and it will be stored in the state file. Please @@ -190,6 +263,83 @@ spec: those inherited from the provider default_tags configuration block. type: object + vpcSecurityGroupIdRefs: + description: References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which + will attempt to resolve the reference only when the + corresponding field is not present. Use 'Always' to + resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + vpcSecurityGroupIdSelector: + description: Selector for a list of SecurityGroup in ec2 to populate + vpcSecurityGroupIds. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object vpcSecurityGroupIds: description: List of VPC security groups to associate with the Cluster @@ -197,21 +347,141 @@ spec: type: string type: array type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + applyImmediately: + description: Specifies whether any cluster modifications are applied + immediately, or during the next maintenance window. Default + is false. + type: boolean + availabilityZones: + description: A list of EC2 Availability Zones that instances in + the DB cluster can be created in. + items: + type: string + type: array + backupRetentionPeriod: + description: The days to retain backups for. Default 1 + type: number + dbClusterParameterGroupName: + description: A cluster parameter group to associate with the cluster. + type: string + dbSubnetGroupName: + description: A DB subnet group to associate with this DB instance. + type: string + deletionProtection: + description: A value that indicates whether the DB cluster has + deletion protection enabled. The database can't be deleted when + deletion protection is enabled. By default, deletion protection + is disabled. + type: boolean + enabledCloudwatchLogsExports: + description: 'List of log types to export to cloudwatch. If omitted, + no logs will be exported. The following log types are supported: + audit, profiler.' + items: + type: string + type: array + engine: + description: 'The name of the database engine to be used for this + DB cluster. Defaults to docdb. Valid Values: docdb' + type: string + engineVersion: + description: The database engine version. Updating this argument + results in an outage. + type: string + finalSnapshotIdentifier: + description: The name of your final DB snapshot when this DB cluster + is deleted. If omitted, no final snapshot will be made. + type: string + globalClusterIdentifier: + description: The global cluster identifier specified on aws_docdb_global_cluster. + type: string + masterUsername: + description: Username for the master DB user. + type: string + port: + description: The port on which the DB accepts connections + type: number + preferredBackupWindow: + description: 'The daily time range during which automated backups + are created if automated backups are enabled using the BackupRetentionPeriod + parameter.Time in UTC Default: A 30-minute window selected at + random from an 8-hour block of time per regionE.g., 04:00-09:00' + type: string + preferredMaintenanceWindow: + description: The weekly time range during which system maintenance + can occur, in (UTC) e.g., wed:04:00-wed:04:30 + type: string + skipFinalSnapshot: + description: Determines whether a final DB snapshot is created + before the DB cluster is deleted. If true is specified, no DB + snapshot is created. If false is specified, a DB snapshot is + created before the DB cluster is deleted, using the value from + final_snapshot_identifier. Default is false. + type: boolean + snapshotIdentifier: + description: Specifies whether or not to create this cluster from + a snapshot. You can use either the name or ARN when specifying + a DB cluster snapshot, or the ARN when specifying a DB snapshot. + Automated snapshots should not be used for this attribute, unless + from a different cluster. Automated snapshots are deleted as + part of cluster destruction when the resource is replaced. + type: string + storageEncrypted: + description: Specifies whether the DB cluster is encrypted. The + default is false. + type: boolean + tags: + additionalProperties: + type: string + description: A map of tags to assign to the DB cluster. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -250,42 +520,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -384,8 +618,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ClusterStatus defines the observed state of Cluster. properties: @@ -557,6 +792,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clustersnapshots.yaml b/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clustersnapshots.yaml index 6194ae421..b64878a94 100644 --- a/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clustersnapshots.yaml +++ b/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_clustersnapshots.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: clustersnapshots.docdb.aws.kubedb.com spec: group: docdb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,26 +70,121 @@ spec: description: The DocumentDB Cluster Identifier from which to take the snapshot. type: string + dbClusterIdentifierRef: + description: Reference to a Cluster in docdb to populate dbClusterIdentifier. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + dbClusterIdentifierSelector: + description: Selector for a Cluster in docdb to populate dbClusterIdentifier. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object region: description: Region is the region you'd like your resource to be created in. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -128,42 +223,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -262,10 +321,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: dbClusterIdentifier is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.dbClusterIdentifier) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ClusterSnapshotStatus defines the observed state of ClusterSnapshot. properties: @@ -353,6 +411,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_eventsubscriptions.yaml b/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_eventsubscriptions.yaml index a5ec382e9..90f699944 100644 --- a/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_eventsubscriptions.yaml +++ b/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_eventsubscriptions.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: eventsubscriptions.docdb.aws.kubedb.com spec: group: docdb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -85,6 +85,79 @@ spec: description: The Amazon Resource Name of the DocumentDB event notification subscription type: string + snsTopicArnRef: + description: Reference to a Topic in sns to populate snsTopicArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + snsTopicArnSelector: + description: Selector for a Topic in sns to populate snsTopicArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object sourceIds: description: A list of identifiers of the event sources for which events will be returned. If not specified, then all sources @@ -114,21 +187,83 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + enabled: + description: A boolean flag to enable/disable the subscription. + Defaults to true. + type: boolean + eventCategories: + description: A list of event categories for a SourceType that + you want to subscribe to. See https://docs.aws.amazon.com/documentdb/latest/developerguide/API_Event.html + or run aws docdb describe-event-categories. + items: + type: string + type: array + sourceIds: + description: A list of identifiers of the event sources for which + events will be returned. If not specified, then all sources + are included in the response. If specified, a source_type must + also be specified. + items: + type: string + type: array + sourceType: + description: The type of source that will be generating the events. + Valid options are db-instance, db-cluster, db-parameter-group, + db-security-group, db-cluster-snapshot. If not set, all sources + will be subscribed to. + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -167,42 +302,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -301,10 +400,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: snsTopicArn is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.snsTopicArn) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: EventSubscriptionStatus defines the observed state of EventSubscription. properties: @@ -398,6 +496,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_globalclusters.yaml b/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_globalclusters.yaml index 506023d1f..061d39940 100644 --- a/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_globalclusters.yaml +++ b/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_globalclusters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: globalclusters.docdb.aws.kubedb.com spec: group: docdb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -96,27 +96,150 @@ spec: description: Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. type: string + sourceDbClusterIdentifierRef: + description: Reference to a Cluster in docdb to populate sourceDbClusterIdentifier. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + sourceDbClusterIdentifierSelector: + description: Selector for a Cluster in docdb to populate sourceDbClusterIdentifier. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object storageEncrypted: description: Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. type: boolean type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + databaseName: + description: Name for an automatically created database on cluster + creation. + type: string + deletionProtection: + description: If the Global Cluster should have deletion protection + enabled. The database can't be deleted when this value is set + to true. The default is false. + type: boolean + engine: + description: 'Name of the database engine to be used for this + DB cluster. Current Valid values: docdb. Defaults to docdb. + Conflicts with source_db_cluster_identifier.' + type: string + engineVersion: + description: Engine version of the global database. Upgrading + the engine version will result in all cluster members being + immediately updated and will. + type: string + globalClusterIdentifier: + description: The global cluster identifier. + type: string + storageEncrypted: + description: Specifies whether the DB cluster is encrypted. The + default is false unless source_db_cluster_identifier is specified + and encrypted. + type: boolean + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -155,42 +278,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -289,10 +376,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: globalClusterIdentifier is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.globalClusterIdentifier) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.globalClusterIdentifier is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.globalClusterIdentifier) + || (has(self.initProvider) && has(self.initProvider.globalClusterIdentifier))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: GlobalClusterStatus defines the observed state of GlobalCluster. properties: @@ -388,6 +478,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_subnetgroups.yaml b/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_subnetgroups.yaml index 53d270c98..2f714f936 100644 --- a/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_subnetgroups.yaml +++ b/charts/kubedb-provider-aws/crds/docdb.aws.kubedb.com_subnetgroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: subnetgroups.docdb.aws.kubedb.com spec: group: docdb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -170,21 +170,61 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + description: + description: The description of the docDB subnet group. + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -223,42 +263,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -357,8 +361,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: SubnetGroupStatus defines the observed state of SubnetGroup. properties: @@ -426,6 +431,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_contributorinsights.yaml b/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_contributorinsights.yaml index 18a86d21a..173837518 100644 --- a/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_contributorinsights.yaml +++ b/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_contributorinsights.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: contributorinsights.dynamodb.aws.kubedb.com spec: group: dynamodb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -150,21 +150,47 @@ spec: type: object type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + indexName: + description: The global secondary index name + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -203,42 +229,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -337,8 +327,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ContributorInsightsStatus defines the observed state of ContributorInsights. properties: @@ -386,6 +377,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_globaltables.yaml b/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_globaltables.yaml index 3286d47b5..8c89cc9fa 100644 --- a/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_globaltables.yaml +++ b/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_globaltables.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: globaltables.dynamodb.aws.kubedb.com spec: group: dynamodb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -79,26 +79,58 @@ spec: description: AWS region name of replica DynamoDB TableE.g., us-east-1 type: string - required: - - regionName type: object type: array type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + replica: + description: Underlying DynamoDB Table. At least 1 replica must + be defined. See below. + items: + properties: + regionName: + description: AWS region name of replica DynamoDB TableE.g., + us-east-1 + type: string + type: object + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -137,42 +169,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -271,10 +267,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: replica is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.replica) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + - message: spec.forProvider.replica is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.replica) + || (has(self.initProvider) && has(self.initProvider.replica))' status: description: GlobalTableStatus defines the observed state of GlobalTable. properties: @@ -331,6 +330,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_kinesisstreamingdestinations.yaml b/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_kinesisstreamingdestinations.yaml index 908cfa720..24d695a17 100644 --- a/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_kinesisstreamingdestinations.yaml +++ b/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_kinesisstreamingdestinations.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: kinesisstreamingdestinations.dynamodb.aws.kubedb.com spec: group: dynamodb.aws.kubedb.com @@ -57,7 +57,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -226,21 +226,43 @@ spec: type: object type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -279,42 +301,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -413,8 +399,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: KinesisStreamingDestinationStatus defines the observed state of KinesisStreamingDestination. @@ -467,6 +454,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tableitems.yaml b/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tableitems.yaml index c1f9fb9ac..cddbbdeb3 100644 --- a/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tableitems.yaml +++ b/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tableitems.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: tableitems.dynamodb.aws.kubedb.com spec: group: dynamodb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -161,21 +161,58 @@ spec: type: object type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + hashKey: + description: Hash key to use for lookups and identification of + the item + type: string + item: + description: JSON representation of a map of attribute name/value + pairs, one for each attribute. Only the primary key attributes + are required; you can optionally provide other attribute name-value + pairs for the item. + type: string + rangeKey: + description: Range key to use for lookups and identification of + the item. Required if there is range key defined in the table. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -214,42 +251,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -348,12 +349,17 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: hashKey is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.hashKey) - - message: item is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.item) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.hashKey is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.hashKey) + || (has(self.initProvider) && has(self.initProvider.hashKey))' + - message: spec.forProvider.item is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.item) + || (has(self.initProvider) && has(self.initProvider.item))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: TableItemStatus defines the observed state of TableItem. properties: @@ -412,6 +418,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tablereplicas.yaml b/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tablereplicas.yaml index fa26de775..94b594288 100644 --- a/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tablereplicas.yaml +++ b/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tablereplicas.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: tablereplicas.dynamodb.aws.kubedb.com spec: group: dynamodb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,6 +70,79 @@ spec: description: ARN of the main or global table which this resource will replicate. type: string + globalTableArnRef: + description: Reference to a Table in dynamodb to populate globalTableArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + globalTableArnSelector: + description: Selector for a Table in dynamodb to populate globalTableArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object kmsKeyArn: description: 'ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is @@ -77,6 +150,79 @@ spec: Note: This attribute will not be populated with the ARN of default keys.' type: string + kmsKeyArnRef: + description: Reference to a Key in kms to populate kmsKeyArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + kmsKeyArnSelector: + description: Selector for a Key in kms to populate kmsKeyArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object pointInTimeRecovery: description: Whether to enable Point In Time Recovery for the replica. Default is false. @@ -105,21 +251,67 @@ spec: inherited from the provider default_tags configuration block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + pointInTimeRecovery: + description: Whether to enable Point In Time Recovery for the + replica. Default is false. + type: boolean + tableClassOverride: + description: Storage class of the table replica. Valid values + are STANDARD and STANDARD_INFREQUENT_ACCESS. If not used, the + table replica will use the same class as the global table. + type: string + tags: + additionalProperties: + type: string + description: Map of tags to populate on the created table. If + configured with a provider default_tags configuration block + present, tags with matching keys will overwrite those defined + at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: Map of tags assigned to the resource, including those + inherited from the provider default_tags configuration block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -158,42 +350,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -292,10 +448,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: globalTableArn is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.globalTableArn) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: TableReplicaStatus defines the observed state of TableReplica. properties: @@ -376,6 +531,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tables.yaml b/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tables.yaml index 60c511d5c..caa737373 100644 --- a/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tables.yaml +++ b/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tables.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: tables.dynamodb.aws.kubedb.com spec: group: dynamodb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -78,9 +78,6 @@ spec: description: Attribute type. Valid values are S (string), N (number), B (binary). type: string - required: - - name - - type type: object type: array billingMode: @@ -131,10 +128,6 @@ spec: description: Number of write units for this index. Must be set if billing_mode is set to PROVISIONED. type: number - required: - - hashKey - - name - - projectionType type: object type: array hashKey: @@ -168,10 +161,6 @@ spec: rangeKey: description: Name of the range key. type: string - required: - - name - - projectionType - - rangeKey type: object type: array pointInTimeRecovery: @@ -183,8 +172,6 @@ spec: can take 10 minutes to enable for new tables. If the point_in_time_recovery block is not provided, this defaults to false. type: boolean - required: - - enabled type: object type: array rangeKey: @@ -229,8 +216,6 @@ spec: regionName: description: Region name of the replica. type: string - required: - - regionName type: object type: array restoreDateTime: @@ -268,8 +253,6 @@ spec: key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys.' type: string - required: - - enabled type: object type: array streamEnabled: @@ -309,8 +292,6 @@ spec: enabled: description: Whether TTL is enabled. type: boolean - required: - - attributeName type: object type: array writeCapacity: @@ -318,21 +299,272 @@ spec: is PROVISIONED, this field is required. type: number type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + attribute: + description: Set of nested attribute definitions. Only required + for hash_key and range_key attributes. See below. + items: + properties: + name: + description: Name of the attribute + type: string + type: + description: Attribute type. Valid values are S (string), + N (number), B (binary). + type: string + type: object + type: array + billingMode: + description: Controls how you are charged for read and write throughput + and how you manage capacity. The valid values are PROVISIONED + and PAY_PER_REQUEST. Defaults to PROVISIONED. + type: string + deletionProtectionEnabled: + description: Enables deletion protection for table. Defaults to + false. + type: boolean + globalSecondaryIndex: + description: Describe a GSI for the table; subject to the normal + limits on the number of GSIs, projected attributes, etc. See + below. + items: + properties: + hashKey: + description: Name of the hash key in the index; must be + defined as an attribute in the resource. + type: string + name: + description: Name of the index. + type: string + nonKeyAttributes: + description: Only required with INCLUDE as a projection + type; a list of attributes to project into the index. + These do not need to be defined as attributes on the table. + items: + type: string + type: array + projectionType: + description: One of ALL, INCLUDE or KEYS_ONLY where ALL + projects every attribute into the index, KEYS_ONLY projects into + the index only the table and index hash_key and sort_key + attributes , INCLUDE projects into the index all of the + attributes that are defined in non_key_attributes in addition + to the attributes that thatKEYS_ONLY project. + type: string + rangeKey: + description: Name of the range key; must be defined + type: string + readCapacity: + description: Number of read units for this index. Must be + set if billing_mode is set to PROVISIONED. + type: number + writeCapacity: + description: Number of write units for this index. Must + be set if billing_mode is set to PROVISIONED. + type: number + type: object + type: array + hashKey: + description: Attribute to use as the hash (partition) key. Must + also be defined as an attribute. See below. + type: string + localSecondaryIndex: + description: Describe an LSI on the table; these can only be allocated + at creation so you cannot change this definition after you have + created the resource. See below. + items: + properties: + name: + description: Name of the index + type: string + nonKeyAttributes: + description: Only required with INCLUDE as a projection + type; a list of attributes to project into the index. + These do not need to be defined as attributes on the table. + items: + type: string + type: array + projectionType: + description: One of ALL, INCLUDE or KEYS_ONLY where ALL + projects every attribute into the index, KEYS_ONLY projects into + the index only the table and index hash_key and sort_key + attributes , INCLUDE projects into the index all of the + attributes that are defined in non_key_attributes in addition + to the attributes that thatKEYS_ONLY project. + type: string + rangeKey: + description: Name of the range key. + type: string + type: object + type: array + pointInTimeRecovery: + description: Enable point-in-time recovery options. See below. + items: + properties: + enabled: + description: Whether to enable point-in-time recovery. It + can take 10 minutes to enable for new tables. If the point_in_time_recovery + block is not provided, this defaults to false. + type: boolean + type: object + type: array + rangeKey: + description: Attribute to use as the range (sort) key. Must also + be defined as an attribute, see below. + type: string + readCapacity: + description: Number of read units for this table. If the billing_mode + is PROVISIONED, this field is required. + type: number + replica: + description: Configuration block(s) with DynamoDB Global Tables + V2 (version 2019.11.21) replication configurations. See below. + items: + properties: + kmsKeyArn: + description: 'ARN of the CMK that should be used for the + AWS KMS encryption. This argument should only be used + if the key is different from the default KMS-managed DynamoDB + key, alias/aws/dynamodb. Note: This attribute will not + be populated with the ARN of default keys.' + type: string + pointInTimeRecovery: + description: Whether to enable Point In Time Recovery for + the replica. Default is false. + type: boolean + propagateTags: + description: 'Whether to propagate the global table''s tags + to a replica. Default is false. Changes to tags only move + in one direction: from global (source) to replica. In + other words, tag drift on a replica will not trigger an + update. Tag or replica changes on the global table, whether + from drift or configuration changes, are propagated to + replicas. Changing from true to false on a subsequent + apply means replica tags are left as they were, unmanaged, + not deleted.' + type: boolean + regionName: + description: Region name of the replica. + type: string + type: object + type: array + restoreDateTime: + description: Time of the point-in-time recovery point to restore. + type: string + restoreSourceName: + description: Name of the table to restore. Must match the name + of an existing table. + type: string + restoreToLatestTime: + description: If set, restores table to the most recent point-in-time + recovery point. + type: boolean + serverSideEncryption: + description: Encryption at rest options. AWS DynamoDB tables are + automatically encrypted at rest with an AWS-owned Customer Master + Key if this argument isn't specified. See below. + items: + properties: + enabled: + description: Whether or not to enable encryption at rest + using an AWS managed KMS customer master key (CMK). If + enabled is false then server-side encryption is set to + AWS-owned key (shown as DEFAULT in the AWS console). Potentially + confusingly, if enabled is true and no kms_key_arn is + specified then server-side encryption is set to the default + KMS-managed key (shown as KMS in the AWS console). The + AWS KMS documentation explains the difference between + AWS-owned and KMS-managed keys. + type: boolean + kmsKeyArn: + description: 'ARN of the CMK that should be used for the + AWS KMS encryption. This argument should only be used + if the key is different from the default KMS-managed DynamoDB + key, alias/aws/dynamodb. Note: This attribute will not + be populated with the ARN of default keys.' + type: string + type: object + type: array + streamEnabled: + description: Whether Streams are enabled. + type: boolean + streamViewType: + description: When an item in the table is modified, StreamViewType + determines what information is written to the table's stream. + Valid values are KEYS_ONLY, NEW_IMAGE, OLD_IMAGE, NEW_AND_OLD_IMAGES. + type: string + tableClass: + description: Storage class of the table. Valid values are STANDARD + and STANDARD_INFREQUENT_ACCESS. Default value is STANDARD. + type: string + tags: + additionalProperties: + type: string + description: A map of tags to populate on the created table. If + configured with a provider default_tags configuration block + present, tags with matching keys will overwrite those defined + at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: Map of tags assigned to the resource, including those + inherited from the provider default_tags configuration block. + type: object + ttl: + description: Configuration block for TTL. See below. + items: + properties: + attributeName: + description: Name of the table attribute to store the TTL + timestamp in. + type: string + enabled: + description: Whether TTL is enabled. + type: boolean + type: object + type: array + writeCapacity: + description: Number of write units for this table. If the billing_mode + is PROVISIONED, this field is required. + type: number + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -371,42 +603,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -505,8 +701,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: TableStatus defines the observed state of Table. properties: @@ -807,6 +1004,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tags.yaml b/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tags.yaml index 12c056dcd..7d191346e 100644 --- a/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tags.yaml +++ b/charts/kubedb-provider-aws/crds/dynamodb.aws.kubedb.com_tags.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: tags.dynamodb.aws.kubedb.com spec: group: dynamodb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -84,21 +84,47 @@ spec: - key - resourceArn type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + value: + description: Tag value. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -137,42 +163,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -271,10 +261,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: value is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.value) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + - message: spec.forProvider.value is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.value) + || (has(self.initProvider) && has(self.initProvider.value))' status: description: TagStatus defines the observed state of Tag. properties: @@ -328,6 +321,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_routes.yaml b/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_routes.yaml index b500364b9..7802534db 100644 --- a/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_routes.yaml +++ b/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_routes.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: routes.ec2.aws.kubedb.com spec: group: ec2.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -117,21 +117,90 @@ spec: description: Identifier of a VPC peering connection. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + carrierGatewayId: + description: Identifier of a carrier gateway. This attribute can + only be used when the VPC contains a subnet which is associated + with a Wavelength Zone. + type: string + coreNetworkArn: + description: The Amazon Resource Name (ARN) of a core network. + type: string + destinationCidrBlock: + description: The destination CIDR block. + type: string + destinationIpv6CidrBlock: + description: The destination IPv6 CIDR block. + type: string + destinationPrefixListId: + description: The ID of a managed prefix list destination. + type: string + egressOnlyGatewayId: + description: Identifier of a VPC Egress Only Internet Gateway. + type: string + gatewayId: + description: Identifier of a VPC internet gateway or a virtual + private gateway. Specify local when updating a previously imported + local route. + type: string + localGatewayId: + description: Identifier of a Outpost local gateway. + type: string + natGatewayId: + description: Identifier of a VPC NAT gateway. + type: string + networkInterfaceId: + description: Identifier of an EC2 network interface. + type: string + routeTableId: + description: The ID of the routing table. + type: string + transitGatewayId: + description: Identifier of an EC2 Transit Gateway. + type: string + vpcEndpointId: + description: Identifier of a VPC Endpoint. + type: string + vpcPeeringConnectionId: + description: Identifier of a VPC peering connection. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -170,42 +239,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -304,10 +337,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: routeTableId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.routeTableId) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + - message: spec.forProvider.routeTableId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.routeTableId) + || (has(self.initProvider) && has(self.initProvider.routeTableId))' status: description: RouteStatus defines the observed state of Route. properties: @@ -410,6 +446,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_securitygrouprules.yaml b/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_securitygrouprules.yaml index ba0f4736f..017048c26 100644 --- a/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_securitygrouprules.yaml +++ b/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_securitygrouprules.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: securitygrouprules.ec2.aws.kubedb.com spec: group: ec2.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -101,6 +101,79 @@ spec: securityGroupId: description: Security group to apply this rule to. type: string + securityGroupIdRef: + description: Reference to a SecurityGroup in ec2 to populate securityGroupId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + securityGroupIdSelector: + description: Selector for a SecurityGroup in ec2 to populate securityGroupId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object self: description: Whether the security group itself will be added as a source to this ingress rule. Cannot be specified with cidr_blocks, @@ -119,21 +192,89 @@ spec: (inbound) or egress (outbound). type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + cidrBlocks: + description: List of CIDR blocks. Cannot be specified with source_security_group_id + or self. + items: + type: string + type: array + description: + description: Description of the rule. + type: string + fromPort: + description: Start port (or ICMP type number if protocol is "icmp" + or "icmpv6"). + type: number + ipv6CidrBlocks: + description: List of IPv6 CIDR blocks. Cannot be specified with + source_security_group_id or self. + items: + type: string + type: array + prefixListIds: + description: List of Prefix List IDs. + items: + type: string + type: array + protocol: + description: Protocol. If not icmp, icmpv6, tcp, udp, or all use + the protocol number + type: string + self: + description: Whether the security group itself will be added as + a source to this ingress rule. Cannot be specified with cidr_blocks, + ipv6_cidr_blocks, or source_security_group_id. + type: boolean + sourceSecurityGroupId: + description: Security group id to allow access to/from, depending + on the type. Cannot be specified with cidr_blocks, ipv6_cidr_blocks, + or self. + type: string + toPort: + description: End port (or ICMP code if protocol is "icmp"). + type: number + type: + description: Type of rule being created. Valid options are ingress + (inbound) or egress (outbound). + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -172,42 +313,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -306,18 +411,25 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: fromPort is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.fromPort) - - message: protocol is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.protocol) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: securityGroupId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.securityGroupId) - - message: toPort is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.toPort) - - message: type is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.type) + - message: spec.forProvider.fromPort is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.fromPort) + || (has(self.initProvider) && has(self.initProvider.fromPort))' + - message: spec.forProvider.protocol is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.protocol) + || (has(self.initProvider) && has(self.initProvider.protocol))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + - message: spec.forProvider.toPort is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.toPort) + || (has(self.initProvider) && has(self.initProvider.toPort))' + - message: spec.forProvider.type is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.type) + || (has(self.initProvider) && has(self.initProvider.type))' status: description: SecurityGroupRuleStatus defines the observed state of SecurityGroupRule. properties: @@ -413,6 +525,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_securitygroups.yaml b/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_securitygroups.yaml new file mode 100644 index 000000000..8d824a244 --- /dev/null +++ b/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_securitygroups.yaml @@ -0,0 +1,829 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: securitygroups.ec2.aws.kubedb.com +spec: + group: ec2.aws.kubedb.com + names: + categories: + - crossplane + - managed + - aws + kind: SecurityGroup + listKind: SecurityGroupList + plural: securitygroups + singular: securitygroup + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: SecurityGroup is the Schema for the SecurityGroups API. Provides + a security group resource. + 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: SecurityGroupSpec defines the desired state of SecurityGroup + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + description: + description: 'Security group description. Cannot be "". NOTE: + This field maps to the AWS GroupDescription attribute, for which + there is no Update API. If you''d like to classify your security + groups in a way that can be updated, use tags.' + type: string + egress: + description: Configuration block for egress rules. Can be specified + multiple times for each egress rule. Each egress block supports + fields documented below. This argument is processed in attribute-as-blocks + mode. + items: + properties: + cidrBlocks: + description: List of CIDR blocks. + items: + type: string + type: array + description: + description: 'Security group description. Cannot be "". + NOTE: This field maps to the AWS GroupDescription attribute, + for which there is no Update API. If you''d like to classify + your security groups in a way that can be updated, use + tags.' + type: string + fromPort: + description: Start port (or ICMP type number if protocol + is icmp or icmpv6). + type: number + ipv6CidrBlocks: + description: List of IPv6 CIDR blocks. + items: + type: string + type: array + prefixListIds: + description: List of Prefix List IDs. + items: + type: string + type: array + protocol: + description: Protocol. If you select a protocol of -1 (semantically + equivalent to all, which is not a valid value here), you + must specify a from_port and to_port equal to 0. The + supported values are defined in the IpProtocol argument + on the IpPermission API reference.12. + type: string + securityGroups: + description: List of security groups. A group name can be + used relative to the default VPC. Otherwise, group ID. + items: + type: string + type: array + self: + description: Whether the security group itself will be added + as a source to this ingress rule. + type: boolean + toPort: + description: End range port (or ICMP code if protocol is + icmp). + type: number + type: object + type: array + ingress: + description: Configuration block for ingress rules. Can be specified + multiple times for each ingress rule. Each ingress block supports + fields documented below. This argument is processed in attribute-as-blocks + mode. + items: + properties: + cidrBlocks: + description: List of CIDR blocks. + items: + type: string + type: array + description: + description: 'Security group description. Cannot be "". + NOTE: This field maps to the AWS GroupDescription attribute, + for which there is no Update API. If you''d like to classify + your security groups in a way that can be updated, use + tags.' + type: string + fromPort: + description: Start port (or ICMP type number if protocol + is icmp or icmpv6). + type: number + ipv6CidrBlocks: + description: List of IPv6 CIDR blocks. + items: + type: string + type: array + prefixListIds: + description: List of Prefix List IDs. + items: + type: string + type: array + protocol: + description: Protocol. If you select a protocol of -1 (semantically + equivalent to all, which is not a valid value here), you + must specify a from_port and to_port equal to 0. The + supported values are defined in the IpProtocol argument + on the IpPermission API reference.12. + type: string + securityGroups: + description: List of security groups. A group name can be + used relative to the default VPC. Otherwise, group ID. + items: + type: string + type: array + self: + description: Whether the security group itself will be added + as a source to this ingress rule. + type: boolean + toPort: + description: End range port (or ICMP code if protocol is + icmp). + type: number + type: object + type: array + name: + description: Name of the security group. + type: string + namePrefix: + description: Creates a unique name beginning with the specified + prefix. Conflicts with name. + type: string + region: + description: Region is the region you'd like your resource to + be created in. + type: string + revokeRulesOnDelete: + description: This is normally not needed, however certain AWS + services such as Elastic Map Reduce may automatically add required + rules to security groups used with the service, and those rules + may contain a cyclic dependency that prevent the security groups + from being destroyed without removing the dependency first. + Default false. + type: boolean + tags: + additionalProperties: + type: string + description: Map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + vpcId: + description: VPC ID. Defaults to the region's default VPC. + type: string + vpcIdRef: + description: Reference to a VPC in ec2 to populate vpcId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + vpcIdSelector: + description: Selector for a VPC in ec2 to populate vpcId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + description: + description: 'Security group description. Cannot be "". NOTE: + This field maps to the AWS GroupDescription attribute, for which + there is no Update API. If you''d like to classify your security + groups in a way that can be updated, use tags.' + type: string + egress: + description: Configuration block for egress rules. Can be specified + multiple times for each egress rule. Each egress block supports + fields documented below. This argument is processed in attribute-as-blocks + mode. + items: + properties: + cidrBlocks: + description: List of CIDR blocks. + items: + type: string + type: array + description: + description: 'Security group description. Cannot be "". + NOTE: This field maps to the AWS GroupDescription attribute, + for which there is no Update API. If you''d like to classify + your security groups in a way that can be updated, use + tags.' + type: string + fromPort: + description: Start port (or ICMP type number if protocol + is icmp or icmpv6). + type: number + ipv6CidrBlocks: + description: List of IPv6 CIDR blocks. + items: + type: string + type: array + prefixListIds: + description: List of Prefix List IDs. + items: + type: string + type: array + protocol: + description: Protocol. If you select a protocol of -1 (semantically + equivalent to all, which is not a valid value here), you + must specify a from_port and to_port equal to 0. The + supported values are defined in the IpProtocol argument + on the IpPermission API reference.12. + type: string + securityGroups: + description: List of security groups. A group name can be + used relative to the default VPC. Otherwise, group ID. + items: + type: string + type: array + self: + description: Whether the security group itself will be added + as a source to this ingress rule. + type: boolean + toPort: + description: End range port (or ICMP code if protocol is + icmp). + type: number + type: object + type: array + ingress: + description: Configuration block for ingress rules. Can be specified + multiple times for each ingress rule. Each ingress block supports + fields documented below. This argument is processed in attribute-as-blocks + mode. + items: + properties: + cidrBlocks: + description: List of CIDR blocks. + items: + type: string + type: array + description: + description: 'Security group description. Cannot be "". + NOTE: This field maps to the AWS GroupDescription attribute, + for which there is no Update API. If you''d like to classify + your security groups in a way that can be updated, use + tags.' + type: string + fromPort: + description: Start port (or ICMP type number if protocol + is icmp or icmpv6). + type: number + ipv6CidrBlocks: + description: List of IPv6 CIDR blocks. + items: + type: string + type: array + prefixListIds: + description: List of Prefix List IDs. + items: + type: string + type: array + protocol: + description: Protocol. If you select a protocol of -1 (semantically + equivalent to all, which is not a valid value here), you + must specify a from_port and to_port equal to 0. The + supported values are defined in the IpProtocol argument + on the IpPermission API reference.12. + type: string + securityGroups: + description: List of security groups. A group name can be + used relative to the default VPC. Otherwise, group ID. + items: + type: string + type: array + self: + description: Whether the security group itself will be added + as a source to this ingress rule. + type: boolean + toPort: + description: End range port (or ICMP code if protocol is + icmp). + type: number + type: object + type: array + name: + description: Name of the security group. + type: string + namePrefix: + description: Creates a unique name beginning with the specified + prefix. Conflicts with name. + type: string + revokeRulesOnDelete: + description: This is normally not needed, however certain AWS + services such as Elastic Map Reduce may automatically add required + rules to security groups used with the service, and those rules + may contain a cyclic dependency that prevent the security groups + from being destroyed without removing the dependency first. + Default false. + type: boolean + tags: + additionalProperties: + type: string + description: Map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + status: + description: SecurityGroupStatus defines the observed state of SecurityGroup. + properties: + atProvider: + properties: + arn: + description: ARN of the security group. + type: string + description: + description: 'Security group description. Cannot be "". NOTE: + This field maps to the AWS GroupDescription attribute, for which + there is no Update API. If you''d like to classify your security + groups in a way that can be updated, use tags.' + type: string + egress: + description: Configuration block for egress rules. Can be specified + multiple times for each egress rule. Each egress block supports + fields documented below. This argument is processed in attribute-as-blocks + mode. + items: + properties: + cidrBlocks: + description: List of CIDR blocks. + items: + type: string + type: array + description: + description: 'Security group description. Cannot be "". + NOTE: This field maps to the AWS GroupDescription attribute, + for which there is no Update API. If you''d like to classify + your security groups in a way that can be updated, use + tags.' + type: string + fromPort: + description: Start port (or ICMP type number if protocol + is icmp or icmpv6). + type: number + ipv6CidrBlocks: + description: List of IPv6 CIDR blocks. + items: + type: string + type: array + prefixListIds: + description: List of Prefix List IDs. + items: + type: string + type: array + protocol: + description: Protocol. If you select a protocol of -1 (semantically + equivalent to all, which is not a valid value here), you + must specify a from_port and to_port equal to 0. The + supported values are defined in the IpProtocol argument + on the IpPermission API reference.12. + type: string + securityGroups: + description: List of security groups. A group name can be + used relative to the default VPC. Otherwise, group ID. + items: + type: string + type: array + self: + description: Whether the security group itself will be added + as a source to this ingress rule. + type: boolean + toPort: + description: End range port (or ICMP code if protocol is + icmp). + type: number + type: object + type: array + id: + description: ID of the security group. + type: string + ingress: + description: Configuration block for ingress rules. Can be specified + multiple times for each ingress rule. Each ingress block supports + fields documented below. This argument is processed in attribute-as-blocks + mode. + items: + properties: + cidrBlocks: + description: List of CIDR blocks. + items: + type: string + type: array + description: + description: 'Security group description. Cannot be "". + NOTE: This field maps to the AWS GroupDescription attribute, + for which there is no Update API. If you''d like to classify + your security groups in a way that can be updated, use + tags.' + type: string + fromPort: + description: Start port (or ICMP type number if protocol + is icmp or icmpv6). + type: number + ipv6CidrBlocks: + description: List of IPv6 CIDR blocks. + items: + type: string + type: array + prefixListIds: + description: List of Prefix List IDs. + items: + type: string + type: array + protocol: + description: Protocol. If you select a protocol of -1 (semantically + equivalent to all, which is not a valid value here), you + must specify a from_port and to_port equal to 0. The + supported values are defined in the IpProtocol argument + on the IpPermission API reference.12. + type: string + securityGroups: + description: List of security groups. A group name can be + used relative to the default VPC. Otherwise, group ID. + items: + type: string + type: array + self: + description: Whether the security group itself will be added + as a source to this ingress rule. + type: boolean + toPort: + description: End range port (or ICMP code if protocol is + icmp). + type: number + type: object + type: array + name: + description: Name of the security group. + type: string + namePrefix: + description: Creates a unique name beginning with the specified + prefix. Conflicts with name. + type: string + ownerId: + description: Owner ID. + type: string + revokeRulesOnDelete: + description: This is normally not needed, however certain AWS + services such as Elastic Map Reduce may automatically add required + rules to security groups used with the service, and those rules + may contain a cyclic dependency that prevent the security groups + from being destroyed without removing the dependency first. + Default false. + type: boolean + tags: + additionalProperties: + type: string + description: Map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + vpcId: + description: VPC ID. Defaults to the region's default VPC. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_subnets.yaml b/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_subnets.yaml new file mode 100644 index 000000000..7b1459e4f --- /dev/null +++ b/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_subnets.yaml @@ -0,0 +1,643 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: subnets.ec2.aws.kubedb.com +spec: + group: ec2.aws.kubedb.com + names: + categories: + - crossplane + - managed + - aws + kind: Subnet + listKind: SubnetList + plural: subnets + singular: subnet + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: Subnet is the Schema for the Subnets API. Provides an VPC subnet + resource. + 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: SubnetSpec defines the desired state of Subnet + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + assignIpv6AddressOnCreation: + description: Specify true to indicate that network interfaces + created in the specified subnet should be assigned an IPv6 address. + Default is false + type: boolean + availabilityZone: + description: AZ for the subnet. + type: string + availabilityZoneId: + description: AZ ID of the subnet. This argument is not supported + in all regions or partitions. If necessary, use availability_zone + instead. + type: string + cidrBlock: + description: The IPv4 CIDR block for the subnet. + type: string + customerOwnedIpv4Pool: + description: The customer owned IPv4 address pool. Typically used + with the map_customer_owned_ip_on_launch argument. The outpost_arn + argument must be specified when configured. + type: string + enableDns64: + description: 'Indicates whether DNS queries made to the Amazon-provided + DNS Resolver in this subnet should return synthetic IPv6 addresses + for IPv4-only destinations. Default: false.' + type: boolean + enableLniAtDeviceIndex: + description: Indicates the device position for local network interfaces + in this subnet. For example, 1 indicates local network interfaces + in this subnet are the secondary network interface (eth1). A + local network interface cannot be the primary network interface + (eth0). + type: number + enableResourceNameDnsARecordOnLaunch: + description: 'Indicates whether to respond to DNS queries for + instance hostnames with DNS A records. Default: false.' + type: boolean + enableResourceNameDnsAaaaRecordOnLaunch: + description: 'Indicates whether to respond to DNS queries for + instance hostnames with DNS AAAA records. Default: false.' + type: boolean + ipv6CidrBlock: + description: The IPv6 network range for the subnet, in CIDR notation. + The subnet size must use a /64 prefix length. + type: string + ipv6Native: + description: 'Indicates whether to create an IPv6-only subnet. + Default: false.' + type: boolean + mapCustomerOwnedIpOnLaunch: + description: Specify true to indicate that network interfaces + created in the subnet should be assigned a customer owned IP + address. The customer_owned_ipv4_pool and outpost_arn arguments + must be specified when set to true. Default is false. + type: boolean + mapPublicIpOnLaunch: + description: Specify true to indicate that instances launched + into the subnet should be assigned a public IP address. Default + is false. + type: boolean + outpostArn: + description: The Amazon Resource Name (ARN) of the Outpost. + type: string + privateDnsHostnameTypeOnLaunch: + description: 'The type of hostnames to assign to instances in + the subnet at launch. For IPv6-only subnets, an instance DNS + name must be based on the instance ID. For dual-stack and IPv4-only + subnets, you can specify whether DNS names use the instance + IPv4 address or the instance ID. Valid values: ip-name, resource-name.' + type: string + region: + description: Region is the region you'd like your resource to + be created in. + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + vpcId: + description: The VPC ID. + type: string + vpcIdRef: + description: Reference to a VPC in ec2 to populate vpcId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + vpcIdSelector: + description: Selector for a VPC in ec2 to populate vpcId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + assignIpv6AddressOnCreation: + description: Specify true to indicate that network interfaces + created in the specified subnet should be assigned an IPv6 address. + Default is false + type: boolean + availabilityZone: + description: AZ for the subnet. + type: string + availabilityZoneId: + description: AZ ID of the subnet. This argument is not supported + in all regions or partitions. If necessary, use availability_zone + instead. + type: string + cidrBlock: + description: The IPv4 CIDR block for the subnet. + type: string + customerOwnedIpv4Pool: + description: The customer owned IPv4 address pool. Typically used + with the map_customer_owned_ip_on_launch argument. The outpost_arn + argument must be specified when configured. + type: string + enableDns64: + description: 'Indicates whether DNS queries made to the Amazon-provided + DNS Resolver in this subnet should return synthetic IPv6 addresses + for IPv4-only destinations. Default: false.' + type: boolean + enableLniAtDeviceIndex: + description: Indicates the device position for local network interfaces + in this subnet. For example, 1 indicates local network interfaces + in this subnet are the secondary network interface (eth1). A + local network interface cannot be the primary network interface + (eth0). + type: number + enableResourceNameDnsARecordOnLaunch: + description: 'Indicates whether to respond to DNS queries for + instance hostnames with DNS A records. Default: false.' + type: boolean + enableResourceNameDnsAaaaRecordOnLaunch: + description: 'Indicates whether to respond to DNS queries for + instance hostnames with DNS AAAA records. Default: false.' + type: boolean + ipv6CidrBlock: + description: The IPv6 network range for the subnet, in CIDR notation. + The subnet size must use a /64 prefix length. + type: string + ipv6Native: + description: 'Indicates whether to create an IPv6-only subnet. + Default: false.' + type: boolean + mapCustomerOwnedIpOnLaunch: + description: Specify true to indicate that network interfaces + created in the subnet should be assigned a customer owned IP + address. The customer_owned_ipv4_pool and outpost_arn arguments + must be specified when set to true. Default is false. + type: boolean + mapPublicIpOnLaunch: + description: Specify true to indicate that instances launched + into the subnet should be assigned a public IP address. Default + is false. + type: boolean + outpostArn: + description: The Amazon Resource Name (ARN) of the Outpost. + type: string + privateDnsHostnameTypeOnLaunch: + description: 'The type of hostnames to assign to instances in + the subnet at launch. For IPv6-only subnets, an instance DNS + name must be based on the instance ID. For dual-stack and IPv4-only + subnets, you can specify whether DNS names use the instance + IPv4 address or the instance ID. Valid values: ip-name, resource-name.' + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + status: + description: SubnetStatus defines the observed state of Subnet. + properties: + atProvider: + properties: + arn: + description: The ARN of the subnet. + type: string + assignIpv6AddressOnCreation: + description: Specify true to indicate that network interfaces + created in the specified subnet should be assigned an IPv6 address. + Default is false + type: boolean + availabilityZone: + description: AZ for the subnet. + type: string + availabilityZoneId: + description: AZ ID of the subnet. This argument is not supported + in all regions or partitions. If necessary, use availability_zone + instead. + type: string + cidrBlock: + description: The IPv4 CIDR block for the subnet. + type: string + customerOwnedIpv4Pool: + description: The customer owned IPv4 address pool. Typically used + with the map_customer_owned_ip_on_launch argument. The outpost_arn + argument must be specified when configured. + type: string + enableDns64: + description: 'Indicates whether DNS queries made to the Amazon-provided + DNS Resolver in this subnet should return synthetic IPv6 addresses + for IPv4-only destinations. Default: false.' + type: boolean + enableLniAtDeviceIndex: + description: Indicates the device position for local network interfaces + in this subnet. For example, 1 indicates local network interfaces + in this subnet are the secondary network interface (eth1). A + local network interface cannot be the primary network interface + (eth0). + type: number + enableResourceNameDnsARecordOnLaunch: + description: 'Indicates whether to respond to DNS queries for + instance hostnames with DNS A records. Default: false.' + type: boolean + enableResourceNameDnsAaaaRecordOnLaunch: + description: 'Indicates whether to respond to DNS queries for + instance hostnames with DNS AAAA records. Default: false.' + type: boolean + id: + description: The ID of the subnet + type: string + ipv6CidrBlock: + description: The IPv6 network range for the subnet, in CIDR notation. + The subnet size must use a /64 prefix length. + type: string + ipv6CidrBlockAssociationId: + description: The association ID for the IPv6 CIDR block. + type: string + ipv6Native: + description: 'Indicates whether to create an IPv6-only subnet. + Default: false.' + type: boolean + mapCustomerOwnedIpOnLaunch: + description: Specify true to indicate that network interfaces + created in the subnet should be assigned a customer owned IP + address. The customer_owned_ipv4_pool and outpost_arn arguments + must be specified when set to true. Default is false. + type: boolean + mapPublicIpOnLaunch: + description: Specify true to indicate that instances launched + into the subnet should be assigned a public IP address. Default + is false. + type: boolean + outpostArn: + description: The Amazon Resource Name (ARN) of the Outpost. + type: string + ownerId: + description: The ID of the AWS account that owns the subnet. + type: string + privateDnsHostnameTypeOnLaunch: + description: 'The type of hostnames to assign to instances in + the subnet at launch. For IPv6-only subnets, an instance DNS + name must be based on the instance ID. For dual-stack and IPv4-only + subnets, you can specify whether DNS names use the instance + IPv4 address or the instance ID. Valid values: ip-name, resource-name.' + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + vpcId: + description: The VPC ID. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_vpcendpoints.yaml b/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_vpcendpoints.yaml new file mode 100644 index 000000000..373574f8b --- /dev/null +++ b/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_vpcendpoints.yaml @@ -0,0 +1,792 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: vpcendpoints.ec2.aws.kubedb.com +spec: + group: ec2.aws.kubedb.com + names: + categories: + - crossplane + - managed + - aws + kind: VPCEndpoint + listKind: VPCEndpointList + plural: vpcendpoints + singular: vpcendpoint + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: VPCEndpoint is the Schema for the VPCEndpoints API. Provides + a VPC Endpoint resource. + 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: VPCEndpointSpec defines the desired state of VPCEndpoint + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + autoAccept: + description: Accept the VPC endpoint (the VPC endpoint and service + need to be in the same AWS account). + type: boolean + dnsOptions: + description: The DNS options for the endpoint. See dns_options + below. + items: + properties: + dnsRecordIpType: + description: The DNS records created for the endpoint. Valid + values are ipv4, dualstack, service-defined, and ipv6. + type: string + type: object + type: array + ipAddressType: + description: The IP address type for the endpoint. Valid values + are ipv4, dualstack, and ipv6. + type: string + policy: + description: A policy to attach to the endpoint that controls + access to the service. This is a JSON formatted string. Defaults + to full access. All Gateway and some Interface endpoints support + policies - see the relevant AWS documentation for more details. + type: string + privateDnsEnabled: + description: Whether or not to associate a private hosted zone + with the specified VPC. Applicable for endpoints of type Interface. + Defaults to false. + type: boolean + region: + description: Region is the region you'd like your resource to + be created in. + type: string + routeTableIds: + description: One or more route table IDs. Applicable for endpoints + of type Gateway. + items: + type: string + type: array + securityGroupIdRefs: + description: References to SecurityGroup in ec2 to populate securityGroupIds. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which + will attempt to resolve the reference only when the + corresponding field is not present. Use 'Always' to + resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + securityGroupIdSelector: + description: Selector for a list of SecurityGroup in ec2 to populate + securityGroupIds. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + securityGroupIds: + description: The ID of one or more security groups to associate + with the network interface. Applicable for endpoints of type + Interface. If no security groups are specified, the VPC's default + security group is associated with the endpoint. + items: + type: string + type: array + serviceName: + description: The service name. For AWS services the service name + is usually in the form com.amazonaws.. (the + SageMaker Notebook service is an exception to this rule, the + service name is in the form aws.sagemaker..notebook). + type: string + subnetIdRefs: + description: References to Subnet in ec2 to populate subnetIds. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which + will attempt to resolve the reference only when the + corresponding field is not present. Use 'Always' to + resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + subnetIdSelector: + description: Selector for a list of Subnet in ec2 to populate + subnetIds. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + subnetIds: + description: The ID of one or more subnets in which to create + a network interface for the endpoint. Applicable for endpoints + of type GatewayLoadBalancer and Interface. + items: + type: string + type: array + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + vpcEndpointType: + description: The VPC endpoint type, Gateway, GatewayLoadBalancer, + or Interface. Defaults to Gateway. + type: string + vpcId: + description: The ID of the VPC in which the endpoint will be used. + type: string + vpcIdRef: + description: Reference to a VPC in ec2 to populate vpcId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + vpcIdSelector: + description: Selector for a VPC in ec2 to populate vpcId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + autoAccept: + description: Accept the VPC endpoint (the VPC endpoint and service + need to be in the same AWS account). + type: boolean + dnsOptions: + description: The DNS options for the endpoint. See dns_options + below. + items: + properties: + dnsRecordIpType: + description: The DNS records created for the endpoint. Valid + values are ipv4, dualstack, service-defined, and ipv6. + type: string + type: object + type: array + ipAddressType: + description: The IP address type for the endpoint. Valid values + are ipv4, dualstack, and ipv6. + type: string + policy: + description: A policy to attach to the endpoint that controls + access to the service. This is a JSON formatted string. Defaults + to full access. All Gateway and some Interface endpoints support + policies - see the relevant AWS documentation for more details. + type: string + privateDnsEnabled: + description: Whether or not to associate a private hosted zone + with the specified VPC. Applicable for endpoints of type Interface. + Defaults to false. + type: boolean + routeTableIds: + description: One or more route table IDs. Applicable for endpoints + of type Gateway. + items: + type: string + type: array + serviceName: + description: The service name. For AWS services the service name + is usually in the form com.amazonaws.. (the + SageMaker Notebook service is an exception to this rule, the + service name is in the form aws.sagemaker..notebook). + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + vpcEndpointType: + description: The VPC endpoint type, Gateway, GatewayLoadBalancer, + or Interface. Defaults to Gateway. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + - message: spec.forProvider.serviceName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.serviceName) + || (has(self.initProvider) && has(self.initProvider.serviceName))' + status: + description: VPCEndpointStatus defines the observed state of VPCEndpoint. + properties: + atProvider: + properties: + arn: + description: The Amazon Resource Name (ARN) of the VPC endpoint. + type: string + autoAccept: + description: Accept the VPC endpoint (the VPC endpoint and service + need to be in the same AWS account). + type: boolean + cidrBlocks: + description: The list of CIDR blocks for the exposed AWS service. + Applicable for endpoints of type Gateway. + items: + type: string + type: array + dnsEntry: + description: The DNS entries for the VPC Endpoint. Applicable + for endpoints of type Interface. DNS blocks are documented below. + items: + properties: + dnsName: + description: The DNS name. + type: string + hostedZoneId: + description: The ID of the private hosted zone. + type: string + type: object + type: array + dnsOptions: + description: The DNS options for the endpoint. See dns_options + below. + items: + properties: + dnsRecordIpType: + description: The DNS records created for the endpoint. Valid + values are ipv4, dualstack, service-defined, and ipv6. + type: string + type: object + type: array + id: + description: The ID of the VPC endpoint. + type: string + ipAddressType: + description: The IP address type for the endpoint. Valid values + are ipv4, dualstack, and ipv6. + type: string + networkInterfaceIds: + description: One or more network interfaces for the VPC Endpoint. + Applicable for endpoints of type Interface. + items: + type: string + type: array + ownerId: + description: The ID of the AWS account that owns the VPC endpoint. + type: string + policy: + description: A policy to attach to the endpoint that controls + access to the service. This is a JSON formatted string. Defaults + to full access. All Gateway and some Interface endpoints support + policies - see the relevant AWS documentation for more details. + type: string + prefixListId: + description: The prefix list ID of the exposed AWS service. Applicable + for endpoints of type Gateway. + type: string + privateDnsEnabled: + description: Whether or not to associate a private hosted zone + with the specified VPC. Applicable for endpoints of type Interface. + Defaults to false. + type: boolean + requesterManaged: + description: Whether or not the VPC Endpoint is being managed + by its service - true or false. + type: boolean + routeTableIds: + description: One or more route table IDs. Applicable for endpoints + of type Gateway. + items: + type: string + type: array + securityGroupIds: + description: The ID of one or more security groups to associate + with the network interface. Applicable for endpoints of type + Interface. If no security groups are specified, the VPC's default + security group is associated with the endpoint. + items: + type: string + type: array + serviceName: + description: The service name. For AWS services the service name + is usually in the form com.amazonaws.. (the + SageMaker Notebook service is an exception to this rule, the + service name is in the form aws.sagemaker..notebook). + type: string + state: + description: The state of the VPC endpoint. + type: string + subnetIds: + description: The ID of one or more subnets in which to create + a network interface for the endpoint. Applicable for endpoints + of type GatewayLoadBalancer and Interface. + items: + type: string + type: array + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + vpcEndpointType: + description: The VPC endpoint type, Gateway, GatewayLoadBalancer, + or Interface. Defaults to Gateway. + type: string + vpcId: + description: The ID of the VPC in which the endpoint will be used. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_vpcpeeringconnections.yaml b/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_vpcpeeringconnections.yaml index 87fd58872..5e539abfc 100644 --- a/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_vpcpeeringconnections.yaml +++ b/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_vpcpeeringconnections.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: vpcpeeringconnections.ec2.aws.kubedb.com spec: group: ec2.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -97,6 +97,79 @@ spec: description: The ID of the VPC with which you are creating the VPC Peering Connection. type: string + peerVpcIdRef: + description: Reference to a VPC in ec2 to populate peerVpcId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + peerVpcIdSelector: + description: Selector for a VPC in ec2 to populate peerVpcId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object region: description: Region is the region you'd like your resource to be created in. @@ -131,22 +204,172 @@ spec: vpcId: description: The ID of the requester VPC. type: string + vpcIdRef: + description: Reference to a VPC in ec2 to populate vpcId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + vpcIdSelector: + description: Selector for a VPC in ec2 to populate vpcId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + accepter: + description: An optional configuration block that allows for VPC + Peering Connection options to be set for the VPC that accepts + the peering connection (a maximum of one). + items: + properties: + allowRemoteVpcDnsResolution: + description: Allow a local VPC to resolve public DNS hostnames + to private IP addresses when queried from instances in + the peer VPC. + type: boolean + type: object + type: array + autoAccept: + description: Accept the peering (both VPCs need to be in the same + AWS account and region). + type: boolean + peerOwnerId: + description: The AWS account ID of the owner of the peer VPC. + Defaults to the account ID the AWS provider is currently connected + to. + type: string + peerRegion: + description: The region of the accepter VPC of the VPC Peering + Connection. auto_accept must be false, and use the aws_vpc_peering_connection_accepter + to manage the accepter side. + type: string + requester: + description: A optional configuration block that allows for VPC + Peering Connection options to be set for the VPC that requests + the peering connection (a maximum of one). + items: + properties: + allowRemoteVpcDnsResolution: + description: Allow a local VPC to resolve public DNS hostnames + to private IP addresses when queried from instances in + the peer VPC. + type: boolean + type: object + type: array + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -185,42 +408,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -319,12 +506,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: peerVpcId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.peerVpcId) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: vpcId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.vpcId) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: VPCPeeringConnectionStatus defines the observed state of VPCPeeringConnection. @@ -432,6 +616,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_vpcs.yaml b/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_vpcs.yaml new file mode 100644 index 000000000..43a6462db --- /dev/null +++ b/charts/kubedb-provider-aws/crds/ec2.aws.kubedb.com_vpcs.yaml @@ -0,0 +1,565 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: vpcs.ec2.aws.kubedb.com +spec: + group: ec2.aws.kubedb.com + names: + categories: + - crossplane + - managed + - aws + kind: VPC + listKind: VPCList + plural: vpcs + singular: vpc + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: VPC is the Schema for the VPCs API. Provides a VPC resource. + 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: VPCSpec defines the desired state of VPC + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + assignGeneratedIpv6CidrBlock: + description: Requests an Amazon-provided IPv6 CIDR block with + a /56 prefix length for the VPC. You cannot specify the range + of IP addresses, or the size of the CIDR block. Default is false. + Conflicts with ipv6_ipam_pool_id + type: boolean + cidrBlock: + description: The IPv4 CIDR block for the VPC. CIDR can be explicitly + set or it can be derived from IPAM using ipv4_netmask_length. + type: string + enableDnsHostnames: + description: A boolean flag to enable/disable DNS hostnames in + the VPC. Defaults false. + type: boolean + enableDnsSupport: + description: A boolean flag to enable/disable DNS support in the + VPC. Defaults to true. + type: boolean + enableNetworkAddressUsageMetrics: + description: Indicates whether Network Address Usage metrics are + enabled for your VPC. Defaults to false. + type: boolean + instanceTenancy: + description: A tenancy option for instances launched into the + VPC. Default is default, which ensures that EC2 instances launched + in this VPC use the EC2 instance tenancy attribute specified + when the EC2 instance is launched. The only other option is + dedicated, which ensures that EC2 instances launched in this + VPC are run on dedicated tenancy instances regardless of the + tenancy attribute specified at launch. This has a dedicated + per region fee of $2 per hour, plus an hourly per instance usage + fee. + type: string + ipv4IpamPoolId: + description: The ID of an IPv4 IPAM pool you want to use for allocating + this VPC's CIDR. IPAM is a VPC feature that you can use to automate + your IP address management workflows including assigning, tracking, + troubleshooting, and auditing IP addresses across AWS Regions + and accounts. Using IPAM you can monitor IP address usage throughout + your AWS Organization. + type: string + ipv4NetmaskLength: + description: The netmask length of the IPv4 CIDR you want to allocate + to this VPC. Requires specifying a ipv4_ipam_pool_id. + type: number + ipv6CidrBlock: + description: IPv6 CIDR block to request from an IPAM Pool. Can + be set explicitly or derived from IPAM using ipv6_netmask_length. + type: string + ipv6CidrBlockNetworkBorderGroup: + description: By default when an IPv6 CIDR is assigned to a VPC + a default ipv6_cidr_block_network_border_group will be set to + the region of the VPC. This can be changed to restrict advertisement + of public addresses to specific Network Border Groups such as + LocalZones. + type: string + ipv6IpamPoolId: + description: IPAM Pool ID for a IPv6 pool. Conflicts with assign_generated_ipv6_cidr_block. + type: string + ipv6NetmaskLength: + description: 'Netmask length to request from IPAM Pool. Conflicts + with ipv6_cidr_block. This can be omitted if IPAM pool as a + allocation_default_netmask_length set. Valid values: 56.' + type: number + region: + description: Region is the region you'd like your resource to + be created in. + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + assignGeneratedIpv6CidrBlock: + description: Requests an Amazon-provided IPv6 CIDR block with + a /56 prefix length for the VPC. You cannot specify the range + of IP addresses, or the size of the CIDR block. Default is false. + Conflicts with ipv6_ipam_pool_id + type: boolean + cidrBlock: + description: The IPv4 CIDR block for the VPC. CIDR can be explicitly + set or it can be derived from IPAM using ipv4_netmask_length. + type: string + enableDnsHostnames: + description: A boolean flag to enable/disable DNS hostnames in + the VPC. Defaults false. + type: boolean + enableDnsSupport: + description: A boolean flag to enable/disable DNS support in the + VPC. Defaults to true. + type: boolean + enableNetworkAddressUsageMetrics: + description: Indicates whether Network Address Usage metrics are + enabled for your VPC. Defaults to false. + type: boolean + instanceTenancy: + description: A tenancy option for instances launched into the + VPC. Default is default, which ensures that EC2 instances launched + in this VPC use the EC2 instance tenancy attribute specified + when the EC2 instance is launched. The only other option is + dedicated, which ensures that EC2 instances launched in this + VPC are run on dedicated tenancy instances regardless of the + tenancy attribute specified at launch. This has a dedicated + per region fee of $2 per hour, plus an hourly per instance usage + fee. + type: string + ipv4IpamPoolId: + description: The ID of an IPv4 IPAM pool you want to use for allocating + this VPC's CIDR. IPAM is a VPC feature that you can use to automate + your IP address management workflows including assigning, tracking, + troubleshooting, and auditing IP addresses across AWS Regions + and accounts. Using IPAM you can monitor IP address usage throughout + your AWS Organization. + type: string + ipv4NetmaskLength: + description: The netmask length of the IPv4 CIDR you want to allocate + to this VPC. Requires specifying a ipv4_ipam_pool_id. + type: number + ipv6CidrBlock: + description: IPv6 CIDR block to request from an IPAM Pool. Can + be set explicitly or derived from IPAM using ipv6_netmask_length. + type: string + ipv6CidrBlockNetworkBorderGroup: + description: By default when an IPv6 CIDR is assigned to a VPC + a default ipv6_cidr_block_network_border_group will be set to + the region of the VPC. This can be changed to restrict advertisement + of public addresses to specific Network Border Groups such as + LocalZones. + type: string + ipv6IpamPoolId: + description: IPAM Pool ID for a IPv6 pool. Conflicts with assign_generated_ipv6_cidr_block. + type: string + ipv6NetmaskLength: + description: 'Netmask length to request from IPAM Pool. Conflicts + with ipv6_cidr_block. This can be omitted if IPAM pool as a + allocation_default_netmask_length set. Valid values: 56.' + type: number + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + status: + description: VPCStatus defines the observed state of VPC. + properties: + atProvider: + properties: + arn: + description: Amazon Resource Name (ARN) of VPC + type: string + assignGeneratedIpv6CidrBlock: + description: Requests an Amazon-provided IPv6 CIDR block with + a /56 prefix length for the VPC. You cannot specify the range + of IP addresses, or the size of the CIDR block. Default is false. + Conflicts with ipv6_ipam_pool_id + type: boolean + cidrBlock: + description: The IPv4 CIDR block for the VPC. CIDR can be explicitly + set or it can be derived from IPAM using ipv4_netmask_length. + type: string + defaultNetworkAclId: + description: The ID of the network ACL created by default on VPC + creation + type: string + defaultRouteTableId: + description: The ID of the route table created by default on VPC + creation + type: string + defaultSecurityGroupId: + description: The ID of the security group created by default on + VPC creation + type: string + dhcpOptionsId: + description: The ID of the VPC + type: string + enableDnsHostnames: + description: A boolean flag to enable/disable DNS hostnames in + the VPC. Defaults false. + type: boolean + enableDnsSupport: + description: A boolean flag to enable/disable DNS support in the + VPC. Defaults to true. + type: boolean + enableNetworkAddressUsageMetrics: + description: Indicates whether Network Address Usage metrics are + enabled for your VPC. Defaults to false. + type: boolean + id: + description: The ID of the VPC + type: string + instanceTenancy: + description: A tenancy option for instances launched into the + VPC. Default is default, which ensures that EC2 instances launched + in this VPC use the EC2 instance tenancy attribute specified + when the EC2 instance is launched. The only other option is + dedicated, which ensures that EC2 instances launched in this + VPC are run on dedicated tenancy instances regardless of the + tenancy attribute specified at launch. This has a dedicated + per region fee of $2 per hour, plus an hourly per instance usage + fee. + type: string + ipv4IpamPoolId: + description: The ID of an IPv4 IPAM pool you want to use for allocating + this VPC's CIDR. IPAM is a VPC feature that you can use to automate + your IP address management workflows including assigning, tracking, + troubleshooting, and auditing IP addresses across AWS Regions + and accounts. Using IPAM you can monitor IP address usage throughout + your AWS Organization. + type: string + ipv4NetmaskLength: + description: The netmask length of the IPv4 CIDR you want to allocate + to this VPC. Requires specifying a ipv4_ipam_pool_id. + type: number + ipv6AssociationId: + description: The association ID for the IPv6 CIDR block. + type: string + ipv6CidrBlock: + description: IPv6 CIDR block to request from an IPAM Pool. Can + be set explicitly or derived from IPAM using ipv6_netmask_length. + type: string + ipv6CidrBlockNetworkBorderGroup: + description: By default when an IPv6 CIDR is assigned to a VPC + a default ipv6_cidr_block_network_border_group will be set to + the region of the VPC. This can be changed to restrict advertisement + of public addresses to specific Network Border Groups such as + LocalZones. + type: string + ipv6IpamPoolId: + description: IPAM Pool ID for a IPv6 pool. Conflicts with assign_generated_ipv6_cidr_block. + type: string + ipv6NetmaskLength: + description: 'Netmask length to request from IPAM Pool. Conflicts + with ipv6_cidr_block. This can be omitted if IPAM pool as a + allocation_default_netmask_length set. Valid values: 56.' + type: number + mainRouteTableId: + description: The ID of the main route table associated with this + VPC. Note that you can change a VPC's main route table by using + an aws_main_route_table_association. + type: string + ownerId: + description: The ID of the AWS account that owns the VPC. + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_clusters.yaml b/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_clusters.yaml index 7c63e4316..07b5f7a66 100644 --- a/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_clusters.yaml +++ b/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_clusters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: clusters.elasticache.aws.kubedb.com spec: group: elasticache.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -136,11 +136,6 @@ spec: description: Valid values are slow-log or engine-log. Max 1 of each. type: string - required: - - destination - - destinationType - - logFormat - - logType type: object type: array maintenanceWindow: @@ -283,6 +278,158 @@ spec: otherwise, the cluster is a standalone primary that is not part of any replication group. type: string + replicationGroupIdRef: + description: Reference to a ReplicationGroup in elasticache to + populate replicationGroupId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + replicationGroupIdSelector: + description: Selector for a ReplicationGroup in elasticache to + populate replicationGroupId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + securityGroupIdRefs: + description: References to SecurityGroup in ec2 to populate securityGroupIds. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which + will attempt to resolve the reference only when the + corresponding field is not present. Use 'Always' to + resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + securityGroupIdSelector: + description: Selector for a list of SecurityGroup in ec2 to populate + securityGroupIds. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object securityGroupIds: description: – One or more VPC security groups associated with the cache cluster @@ -318,6 +465,81 @@ spec: subnetGroupName: description: create the resource. type: string + subnetGroupNameRef: + description: Reference to a SubnetGroup in elasticache to populate + subnetGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + subnetGroupNameSelector: + description: Selector for a SubnetGroup in elasticache to populate + subnetGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object tags: additionalProperties: type: string @@ -332,21 +554,205 @@ spec: inherited from the provider default_tags configuration block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + applyImmediately: + description: Whether any database modifications are applied immediately, + or during the next maintenance window. Default is false. See + Amazon ElastiCache Documentation for more information.. + type: boolean + autoMinorVersionUpgrade: + description: Specifies whether minor version engine upgrades will + be applied automatically to the underlying Cache Cluster instances + during the maintenance window. Only supported for engine type + "redis" and if the engine version is 6 or higher. Defaults to + true. + type: string + availabilityZone: + description: 'Availability Zone for the cache cluster. If you + want to create cache nodes in multi-az, use preferred_availability_zones + instead. Default: System chosen Availability Zone. Changing + this value will re-create the resource.' + type: string + azMode: + description: Whether the nodes in this Memcached node group are + created in a single Availability Zone or created across multiple + Availability Zones in the cluster's region. Valid values for + this parameter are single-az or cross-az, default is single-az. + If you want to choose cross-az, num_cache_nodes must be greater + than 1. + type: string + engine: + description: – Name of the cache engine to be used for this cache + cluster. Valid values are memcached or redis. + type: string + engineVersion: + description: – Version number of the cache engine to be used. + If not set, defaults to the latest version. See Describe Cache + Engine Versions in the AWS Documentation for supported versions. + When engine is redis and the version is 6 or higher, the major + and minor version can be set, e.g., 6.2, or the minor version + can be unspecified which will use the latest version at creation + time, e.g., 6.x. Otherwise, specify the full version desired, + e.g., 5.0.6. The actual engine version used is returned in the + attribute engine_version_actual, see Attributes Reference below. + type: string + finalSnapshotIdentifier: + description: Name of your final cluster snapshot. If omitted, + no final snapshot will be made. + type: string + ipDiscovery: + description: The IP version to advertise in the discovery protocol. + Valid values are ipv4 or ipv6. + type: string + logDeliveryConfiguration: + description: Specifies the destination and format of Redis SLOWLOG + or Redis Engine Log. See the documentation on Amazon ElastiCache. + See Log Delivery Configuration below for more details. + items: + properties: + destination: + description: Name of either the CloudWatch Logs LogGroup + or Kinesis Data Firehose resource. + type: string + destinationType: + description: For CloudWatch Logs use cloudwatch-logs or + for Kinesis Data Firehose use kinesis-firehose. + type: string + logFormat: + description: Valid values are json or text + type: string + logType: + description: Valid values are slow-log or engine-log. Max + 1 of each. + type: string + type: object + type: array + maintenanceWindow: + description: 'ddd:hh24:mi (24H Clock UTC). The minimum maintenance + window is a 60 minute period. Example: sun:05:00-sun:09:00.' + type: string + networkType: + description: The IP versions for cache cluster connections. IPv6 + is supported with Redis engine 6.2 onword or Memcached version + 1.6.6 for all Nitro system instances. Valid values are ipv4, + ipv6 or dual_stack. + type: string + nodeType: + description: create the resource. + type: string + notificationTopicArn: + description: east-1:012345678999:my_sns_topic. + type: string + numCacheNodes: + description: – The initial number of cache nodes that the cache + cluster will have. For Redis, this value must be 1. For Memcached, + this value must be between 1 and 40. If this number is reduced + on subsequent runs, the highest numbered nodes will be removed. + type: number + outpostMode: + description: Specify the outpost mode that will apply to the cache + cluster creation. Valid values are "single-outpost" and "cross-outpost", + however AWS currently only supports "single-outpost" mode. + type: string + port: + description: create the resource. + type: number + preferredAvailabilityZones: + description: 'List of the Availability Zones in which cache nodes + are created. If you are creating your cluster in an Amazon VPC + you can only locate nodes in Availability Zones that are associated + with the subnets in the selected subnet group. The number of + Availability Zones listed must equal the value of num_cache_nodes. + If you want all the nodes in the same Availability Zone, use + availability_zone instead, or repeat the Availability Zone multiple + times in the list. Default: System chosen Availability Zones. + Detecting drift of existing node availability zone is not currently + supported. Updating this argument by itself to migrate existing + node availability zones is not currently supported and will + show a perpetual difference.' + items: + type: string + type: array + preferredOutpostArn: + description: The outpost ARN in which the cache cluster will be + created. + type: string + snapshotArns: + description: element string list containing an Amazon Resource + Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. + The object name cannot contain any commas. Changing snapshot_arns + forces a new resource. + items: + type: string + type: array + snapshotName: + description: Name of a snapshot from which to restore data into + the new node group. Changing snapshot_name forces a new resource. + type: string + snapshotRetentionLimit: + description: Number of days for which ElastiCache will retain + automatic cache cluster snapshots before deleting them. For + example, if you set SnapshotRetentionLimit to 5, then a snapshot + that was taken today will be retained for 5 days before being + deleted. If the value of SnapshotRetentionLimit is set to zero + (0), backups are turned off. Please note that setting a snapshot_retention_limit + is not supported on cache.t1.micro cache nodes + type: number + snapshotWindow: + description: 'Daily time range (in UTC) during which ElastiCache + will begin taking a daily snapshot of your cache cluster. Example: + 05:00-09:00' + type: string + tags: + additionalProperties: + type: string + description: Map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: Map of tags assigned to the resource, including those + inherited from the provider default_tags configuration block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -385,42 +791,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -519,8 +889,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ClusterStatus defines the observed state of Cluster. properties: @@ -782,6 +1153,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_parametergroups.yaml b/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_parametergroups.yaml index 36f08a12a..41d05bbc5 100644 --- a/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_parametergroups.yaml +++ b/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_parametergroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: parametergroups.elasticache.aws.kubedb.com spec: group: elasticache.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -85,9 +85,6 @@ spec: value: description: The value of the ElastiCache parameter. type: string - required: - - name - - value type: object type: array region: @@ -109,21 +106,79 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + description: + description: The description of the ElastiCache parameter group. + type: string + family: + description: The family of the ElastiCache parameter group. + type: string + name: + description: The name of the ElastiCache parameter group. + type: string + parameter: + description: A list of ElastiCache parameters to apply. + items: + properties: + name: + description: The name of the ElastiCache parameter group. + type: string + value: + description: The value of the ElastiCache parameter. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: Key-value mapping of resource tags. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -162,42 +217,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -296,12 +315,17 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: family is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.family) - - message: name is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.name) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.family is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.family) + || (has(self.initProvider) && has(self.initProvider.family))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ParameterGroupStatus defines the observed state of ParameterGroup. properties: @@ -382,6 +406,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_replicationgroups.yaml b/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_replicationgroups.yaml index bad071004..a4aff5bd2 100644 --- a/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_replicationgroups.yaml +++ b/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_replicationgroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: replicationgroups.elasticache.aws.kubedb.com spec: group: elasticache.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -240,11 +240,6 @@ spec: description: Valid values are slow-log or engine-log. Max 1 of each. type: string - required: - - destination - - destinationType - - logFormat - - logType type: object type: array maintenanceWindow: @@ -302,6 +297,83 @@ spec: this number will trigger a resizing operation before other settings modifications. Valid values are 0 to 5. type: number + securityGroupIdRefs: + description: References to SecurityGroup in ec2 to populate securityGroupIds. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which + will attempt to resolve the reference only when the + corresponding field is not present. Use 'Always' to + resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + securityGroupIdSelector: + description: Selector for a list of SecurityGroup in ec2 to populate + securityGroupIds. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object securityGroupIds: description: One or more Amazon VPC security groups associated with this replication group. Use this parameter only when you @@ -449,21 +521,236 @@ spec: type: string type: array type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + applyImmediately: + description: Specifies whether any modifications are applied immediately, + or during the next maintenance window. Default is false. + type: boolean + atRestEncryptionEnabled: + description: Whether to enable encryption at rest. + type: boolean + autoMinorVersionUpgrade: + description: Specifies whether minor version engine upgrades will + be applied automatically to the underlying Cache Cluster instances + during the maintenance window. Only supported for engine type + "redis" and if the engine version is 6 or higher. Defaults to + true. + type: string + automaticFailoverEnabled: + description: Specifies whether a read-only replica will be automatically + promoted to read/write primary if the existing primary fails. + If enabled, num_cache_clusters must be greater than 1. Must + be enabled for Redis (cluster mode enabled) replication groups. + Defaults to false. + type: boolean + dataTieringEnabled: + description: Enables data tiering. Data tiering is only supported + for replication groups using the r6gd node type. This parameter + must be set to true when using r6gd nodes. + type: boolean + description: + description: created description for the replication group. Must + not be empty. + type: string + engine: + description: Name of the cache engine to be used for the clusters + in this replication group. The only valid value is redis. + type: string + engineVersion: + description: Version number of the cache engine to be used for + the cache clusters in this replication group. If the version + is 6 or higher, the major and minor version can be set, e.g., + 6.2, or the minor version can be unspecified which will use + the latest version at creation time, e.g., 6.x. Otherwise, specify + the full version desired, e.g., 5.0.6. The actual engine version + used is returned in the attribute engine_version_actual, see + Attributes Reference below. + type: string + finalSnapshotIdentifier: + description: The name of your final node group (shard) snapshot. + ElastiCache creates the snapshot from the primary node in the + cluster. If omitted, no final snapshot will be made. + type: string + globalReplicationGroupId: + description: The ID of the global replication group to which this + replication group should belong. If this parameter is specified, + the replication group is added to the specified global replication + group as a secondary replication group; otherwise, the replication + group is not part of any global replication group. If global_replication_group_id + is set, the num_node_groups parameter cannot be set. + type: string + logDeliveryConfiguration: + description: Specifies the destination and format of Redis SLOWLOG + or Redis Engine Log. See the documentation on Amazon ElastiCache. + See Log Delivery Configuration below for more details. + items: + properties: + destination: + description: Name of either the CloudWatch Logs LogGroup + or Kinesis Data Firehose resource. + type: string + destinationType: + description: For CloudWatch Logs use cloudwatch-logs or + for Kinesis Data Firehose use kinesis-firehose. + type: string + logFormat: + description: Valid values are json or text + type: string + logType: + description: Valid values are slow-log or engine-log. Max + 1 of each. + type: string + type: object + type: array + maintenanceWindow: + description: 'ddd:hh24:mi (24H Clock UTC). The minimum maintenance + window is a 60 minute period. Example: sun:05:00-sun:09:00' + type: string + multiAzEnabled: + description: Specifies whether to enable Multi-AZ Support for + the replication group. If true, automatic_failover_enabled must + also be enabled. Defaults to false. + type: boolean + nodeType: + description: Instance class to be used. See AWS documentation + for information on supported node types and guidance on selecting + node types. Required unless global_replication_group_id is set. + Cannot be set if global_replication_group_id is set. + type: string + notificationTopicArn: + description: east-1:012345678999:my_sns_topic + type: string + numCacheClusters: + description: 00#. + type: number + numNodeGroups: + description: Number of node groups (shards) for this Redis replication + group. Changing this number will trigger a resizing operation + before other settings modifications. + type: number + parameterGroupName: + description: Name of the parameter group to associate with this + replication group. If this argument is omitted, the default + cache parameter group for the specified engine is used. To enable + "cluster mode", i.e., data sharding, use a parameter group that + has the parameter cluster-enabled set to true. + type: string + port: + description: – Port number on which each of the cache nodes will + accept connections. For Memcache the default is 11211, and for + Redis the default port is 6379. + type: number + preferredCacheClusterAzs: + description: List of EC2 availability zones in which the replication + group's cache clusters will be created. The order of the availability + zones in the list is considered. The first item in the list + will be the primary node. Ignored when updating. + items: + type: string + type: array + replicasPerNodeGroup: + description: Number of replica nodes in each node group. Changing + this number will trigger a resizing operation before other settings + modifications. Valid values are 0 to 5. + type: number + securityGroupNames: + description: List of cache security group names to associate with + this replication group. + items: + type: string + type: array + snapshotArns: + description: – List of ARNs that identify Redis RDB snapshot + files stored in Amazon S3. The names object names cannot contain + any commas. + items: + type: string + type: array + snapshotName: + description: Name of a snapshot from which to restore data into + the new node group. Changing the snapshot_name forces a new + resource. + type: string + snapshotRetentionLimit: + description: Number of days for which ElastiCache will retain + automatic cache cluster snapshots before deleting them. For + example, if you set SnapshotRetentionLimit to 5, then a snapshot + that was taken today will be retained for 5 days before being + deleted. If the value of snapshot_retention_limit is set to + zero (0), backups are turned off. Please note that setting a + snapshot_retention_limit is not supported on cache.t1.micro + cache nodes + type: number + snapshotWindow: + description: 'Daily time range (in UTC) during which ElastiCache + will begin taking a daily snapshot of your cache cluster. The + minimum snapshot window is a 60 minute period. Example: 05:00-09:00' + type: string + tags: + additionalProperties: + type: string + description: Map of tags to assign to the resource. Adding tags + to this resource will add or overwrite any existing tags on + the clusters in the replication group and not to the group itself. + If configured with a provider default_tags configuration block + present, tags with matching keys will overwrite those defined + at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: Map of tags assigned to the resource, including those + inherited from the provider default_tags configuration block. + type: object + transitEncryptionEnabled: + description: Whether to enable encryption in transit. + type: boolean + userGroupIds: + description: 'User Group ID to associate with the replication + group. Only a maximum of one (1) user group ID is valid. NOTE: + This argument is a set because the AWS specification allows + for multiple IDs. However, in practice, AWS only allows a maximum + size of one.' + items: + type: string + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -502,42 +789,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -636,8 +887,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ReplicationGroupStatus defines the observed state of ReplicationGroup. properties: @@ -918,6 +1170,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_subnetgroups.yaml b/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_subnetgroups.yaml index 6eef57c8e..378e8f6b5 100644 --- a/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_subnetgroups.yaml +++ b/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_subnetgroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: subnetgroups.elasticache.aws.kubedb.com spec: group: elasticache.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -73,6 +73,83 @@ spec: description: Region is the region you'd like your resource to be created in. type: string + subnetIdRefs: + description: References to Subnet in ec2 to populate subnetIds. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which + will attempt to resolve the reference only when the + corresponding field is not present. Use 'Always' to + resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + subnetIdSelector: + description: Selector for a list of Subnet in ec2 to populate + subnetIds. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object subnetIds: description: – List of VPC Subnet IDs for the cache subnet group items: @@ -93,21 +170,61 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + description: + description: – Description for the cache subnet group. + type: string + tags: + additionalProperties: + type: string + description: Key-value map of resource tags. If configured with + a provider default_tags configuration block present, tags with + matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -146,42 +263,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -280,10 +361,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: subnetIds is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.subnetIds) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: SubnetGroupStatus defines the observed state of SubnetGroup. properties: @@ -349,6 +429,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_usergroups.yaml b/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_usergroups.yaml index 333da8877..0d678b43f 100644 --- a/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_usergroups.yaml +++ b/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_usergroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: usergroups.elasticache.aws.kubedb.com spec: group: elasticache.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -169,21 +169,61 @@ spec: type: string type: array type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + engine: + description: The current supported value is REDIS. + type: string + tags: + additionalProperties: + type: string + description: Key-value map of resource tags. If configured with + a provider default_tags configuration block present, tags with + matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -222,42 +262,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -356,10 +360,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: engine is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.engine) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.engine is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.engine) + || (has(self.initProvider) && has(self.initProvider.engine))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: UserGroupStatus defines the observed state of UserGroup. properties: @@ -427,6 +434,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_users.yaml b/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_users.yaml index 24b98f979..17cf4f709 100644 --- a/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_users.yaml +++ b/charts/kubedb-provider-aws/crds/elasticache.aws.kubedb.com_users.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: users.elasticache.aws.kubedb.com spec: group: elasticache.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -101,8 +101,6 @@ spec: description: 'Specifies the authentication type. Possible options are: password, no-password-required or iam.' type: string - required: - - type type: object type: array engine: @@ -151,21 +149,78 @@ spec: description: The username of the user. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + accessString: + description: Access permissions string used for this user. See + Specifying Permissions Using an Access String for more details. + type: string + authenticationMode: + description: Denotes the user's authentication properties. Detailed + below. + items: + properties: + type: + description: 'Specifies the authentication type. Possible + options are: password, no-password-required or iam.' + type: string + type: object + type: array + engine: + description: The current supported value is REDIS. + type: string + noPasswordRequired: + description: Indicates a password is not required for this user. + type: boolean + tags: + additionalProperties: + type: string + description: A list of tags to be added to this resource. A tag + is a key-value pair. + type: object + tagsAll: + additionalProperties: + type: string + type: object + userName: + description: The username of the user. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -204,42 +259,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -338,14 +357,21 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: accessString is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.accessString) - - message: engine is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.engine) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: userName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.userName) + - message: spec.forProvider.accessString is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.accessString) + || (has(self.initProvider) && has(self.initProvider.accessString))' + - message: spec.forProvider.engine is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.engine) + || (has(self.initProvider) && has(self.initProvider.engine))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + - message: spec.forProvider.userName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.userName) + || (has(self.initProvider) && has(self.initProvider.userName))' status: description: UserStatus defines the observed state of User. properties: @@ -426,6 +452,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/elasticsearch.aws.kubedb.com_domainpolicies.yaml b/charts/kubedb-provider-aws/crds/elasticsearch.aws.kubedb.com_domainpolicies.yaml index cff51f1a0..d714c9cc7 100644 --- a/charts/kubedb-provider-aws/crds/elasticsearch.aws.kubedb.com_domainpolicies.yaml +++ b/charts/kubedb-provider-aws/crds/elasticsearch.aws.kubedb.com_domainpolicies.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: domainpolicies.elasticsearch.aws.kubedb.com spec: group: elasticsearch.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -73,26 +73,128 @@ spec: domainName: description: Name of the domain. type: string + domainNameRef: + description: Reference to a Domain in elasticsearch to populate + domainName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + domainNameSelector: + description: Selector for a Domain in elasticsearch to populate + domainName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object region: description: Region is the region you'd like your resource to be created in. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + accessPolicies: + description: IAM policy document specifying the access policies + for the domain + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -131,42 +233,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -265,12 +331,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: accessPolicies is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.accessPolicies) - - message: domainName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.domainName) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.accessPolicies is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.accessPolicies) + || (has(self.initProvider) && has(self.initProvider.accessPolicies))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: DomainPolicyStatus defines the observed state of DomainPolicy. properties: @@ -319,6 +386,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/elasticsearch.aws.kubedb.com_domains.yaml b/charts/kubedb-provider-aws/crds/elasticsearch.aws.kubedb.com_domains.yaml index 61610701f..d0a1766a5 100644 --- a/charts/kubedb-provider-aws/crds/elasticsearch.aws.kubedb.com_domains.yaml +++ b/charts/kubedb-provider-aws/crds/elasticsearch.aws.kubedb.com_domains.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: domains.elasticsearch.aws.kubedb.com spec: group: elasticsearch.aws.kubedb.com @@ -55,7 +55,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -125,8 +125,6 @@ spec: type: object type: object type: array - required: - - enabled type: object type: array autoTuneOptions: @@ -163,19 +161,12 @@ spec: of the duration of an Auto-Tune maintenance window. type: number - required: - - unit - - value type: object type: array startAt: description: Date and time at which to start the Auto-Tune maintenance schedule in RFC3339 format. type: string - required: - - cronExpressionForRecurrence - - duration - - startAt type: object type: array rollbackOnDisable: @@ -183,8 +174,6 @@ spec: settings when disabling Auto-Tune. Valid values: DEFAULT_ROLLBACK or NO_ROLLBACK.' type: string - required: - - desiredState type: object type: array clusterConfig: @@ -275,10 +264,6 @@ spec: userPoolId: description: ID of the Cognito User Pool to use. type: string - required: - - identityPoolId - - roleArn - - userPoolId type: object type: array domainEndpointOptions: @@ -333,8 +318,6 @@ spec: volumeType: description: Type of EBS volumes attached to data nodes. type: string - required: - - ebsEnabled type: object type: array elasticsearchVersion: @@ -357,8 +340,6 @@ spec: service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. type: string - required: - - enabled type: object type: array logPublishingOptions: @@ -380,9 +361,6 @@ spec: description: 'Type of Elasticsearch log. Valid values: INDEX_SLOW_LOGS, SEARCH_SLOW_LOGS, ES_APPLICATION_LOGS, AUDIT_LOGS.' type: string - required: - - cloudwatchLogGroupArn - - logType type: object type: array nodeToNodeEncryption: @@ -397,8 +375,6 @@ spec: of a new domain requires an elasticsearch_version of 6.0 or greater. type: boolean - required: - - enabled type: object type: array region: @@ -417,8 +393,6 @@ spec: description: Hour during which the service takes an automated daily snapshot of the indices in the domain. type: number - required: - - automatedSnapshotStartHour type: object type: array tags: @@ -456,21 +430,384 @@ spec: type: object type: array type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + accessPolicies: + description: IAM policy document specifying the access policies + for the domain. + type: string + advancedOptions: + additionalProperties: + type: string + description: Key-value string pairs to specify advanced configuration + options. + type: object + advancedSecurityOptions: + description: Configuration block for fine-grained access control. + Detailed below. + items: + properties: + enabled: + description: Whether advanced security is enabled. + type: boolean + internalUserDatabaseEnabled: + description: Whether the internal user database is enabled. + If not set, defaults to false by the AWS API. + type: boolean + masterUserOptions: + description: Configuration block for the main user. Detailed + below. + items: + properties: + masterUserArn: + description: ARN for the main user. Only specify if + internal_user_database_enabled is not set or set + to false. + type: string + masterUserName: + description: Main user's username, which is stored + in the Amazon Elasticsearch Service domain's internal + database. Only specify if internal_user_database_enabled + is set to true. + type: string + type: object + type: array + type: object + type: array + autoTuneOptions: + description: Configuration block for the Auto-Tune options of + the domain. Detailed below. + items: + properties: + desiredState: + description: 'The Auto-Tune desired state for the domain. + Valid values: ENABLED or DISABLED.' + type: string + maintenanceSchedule: + description: Configuration block for Auto-Tune maintenance + windows. Can be specified multiple times for each maintenance + window. Detailed below. + items: + properties: + cronExpressionForRecurrence: + description: A cron expression specifying the recurrence + pattern for an Auto-Tune maintenance schedule. + type: string + duration: + description: Configuration block for the duration + of the Auto-Tune maintenance window. Detailed below. + items: + properties: + unit: + description: 'The unit of time specifying the + duration of an Auto-Tune maintenance window. + Valid values: HOURS.' + type: string + value: + description: An integer specifying the value + of the duration of an Auto-Tune maintenance + window. + type: number + type: object + type: array + startAt: + description: Date and time at which to start the Auto-Tune + maintenance schedule in RFC3339 format. + type: string + type: object + type: array + rollbackOnDisable: + description: 'Whether to roll back to default Auto-Tune + settings when disabling Auto-Tune. Valid values: DEFAULT_ROLLBACK + or NO_ROLLBACK.' + type: string + type: object + type: array + clusterConfig: + description: Configuration block for the cluster of the domain. + Detailed below. + items: + properties: + coldStorageOptions: + description: Configuration block containing cold storage + configuration. Detailed below. + items: + properties: + enabled: + description: Boolean to enable cold storage for an + Elasticsearch domain. Defaults to false. Master + and ultrawarm nodes must be enabled for cold storage. + type: boolean + type: object + type: array + dedicatedMasterCount: + description: Number of dedicated main nodes in the cluster. + type: number + dedicatedMasterEnabled: + description: Whether dedicated main nodes are enabled for + the cluster. + type: boolean + dedicatedMasterType: + description: Instance type of the dedicated main nodes in + the cluster. + type: string + instanceCount: + description: Number of instances in the cluster. + type: number + instanceType: + description: Instance type of data nodes in the cluster. + type: string + warmCount: + description: Number of warm nodes in the cluster. Valid + values are between 2 and 150. warm_count can be only and + must be set when warm_enabled is set to true. + type: number + warmEnabled: + description: Whether to enable warm storage. + type: boolean + warmType: + description: Instance type for the Elasticsearch cluster's + warm nodes. Valid values are ultrawarm1.medium.elasticsearch, + ultrawarm1.large.elasticsearch and ultrawarm1.xlarge.elasticsearch. + warm_type can be only and must be set when warm_enabled + is set to true. + type: string + zoneAwarenessConfig: + description: Configuration block containing zone awareness + settings. Detailed below. + items: + properties: + availabilityZoneCount: + description: 'Number of Availability Zones for the + domain to use with zone_awareness_enabled. Defaults + to 2. Valid values: 2 or 3.' + type: number + type: object + type: array + zoneAwarenessEnabled: + description: Whether zone awareness is enabled, set to true + for multi-az deployment. To enable awareness with three + Availability Zones, the availability_zone_count within + the zone_awareness_config must be set to 3. + type: boolean + type: object + type: array + cognitoOptions: + description: Configuration block for authenticating Kibana with + Cognito. Detailed below. + items: + properties: + enabled: + description: Whether Amazon Cognito authentication with + Kibana is enabled or not. + type: boolean + identityPoolId: + description: ID of the Cognito Identity Pool to use. + type: string + roleArn: + description: ARN of the IAM role that has the AmazonESCognitoAccess + policy attached. + type: string + userPoolId: + description: ID of the Cognito User Pool to use. + type: string + type: object + type: array + domainEndpointOptions: + description: Configuration block for domain endpoint HTTP(S) related + options. Detailed below. + items: + properties: + customEndpoint: + description: Fully qualified domain for your custom endpoint. + type: string + customEndpointCertificateArn: + description: ACM certificate ARN for your custom endpoint. + type: string + customEndpointEnabled: + description: Whether to enable custom endpoint for the Elasticsearch + domain. + type: boolean + enforceHttps: + description: Whether or not to require HTTPS. Defaults to + true. + type: boolean + tlsSecurityPolicy: + description: 'Name of the TLS security policy that needs + to be applied to the HTTPS endpoint. Valid values: Policy-Min-TLS-1-0-2019-07 + and Policy-Min-TLS-1-2-2019-07.' + type: string + type: object + type: array + ebsOptions: + description: Configuration block for EBS related options, may + be required based on chosen instance size. Detailed below. + items: + properties: + ebsEnabled: + description: Whether EBS volumes are attached to data nodes + in the domain. + type: boolean + iops: + description: Baseline input/output (I/O) performance of + EBS volumes attached to data nodes. Applicable only for + the GP3 and Provisioned IOPS EBS volume types. + type: number + throughput: + description: Specifies the throughput (in MiB/s) of the + EBS volumes attached to data nodes. Applicable only for + the gp3 volume type. + type: number + volumeSize: + description: Size of EBS volumes attached to data nodes + (in GiB). + type: number + volumeType: + description: Type of EBS volumes attached to data nodes. + type: string + type: object + type: array + elasticsearchVersion: + description: Version of Elasticsearch to deploy. Defaults to 1.5. + type: string + encryptAtRest: + description: Configuration block for encrypt at rest options. + Only available for certain instance types. Detailed below. + items: + properties: + enabled: + description: Whether to enable encryption at rest. If the + encrypt_at_rest block is not provided then this defaults + to false. Enabling encryption on new domains requires + elasticsearch_version 5.1 or greater. + type: boolean + kmsKeyId: + description: KMS key ARN to encrypt the Elasticsearch domain + with. If not specified then it defaults to using the aws/es + service KMS key. Note that KMS will accept a KMS key ID + but will return the key ARN. + type: string + type: object + type: array + logPublishingOptions: + description: Configuration block for publishing slow and application + logs to CloudWatch Logs. This block can be declared multiple + times, for each log_type, within the same resource. Detailed + below. + items: + properties: + cloudwatchLogGroupArn: + description: ARN of the Cloudwatch log group to which log + needs to be published. + type: string + enabled: + description: Whether given log publishing option is enabled + or not. + type: boolean + logType: + description: 'Type of Elasticsearch log. Valid values: INDEX_SLOW_LOGS, + SEARCH_SLOW_LOGS, ES_APPLICATION_LOGS, AUDIT_LOGS.' + type: string + type: object + type: array + nodeToNodeEncryption: + description: Configuration block for node-to-node encryption options. + Detailed below. + items: + properties: + enabled: + description: Whether to enable node-to-node encryption. + If the node_to_node_encryption block is not provided then + this defaults to false. Enabling node-to-node encryption + of a new domain requires an elasticsearch_version of 6.0 + or greater. + type: boolean + type: object + type: array + snapshotOptions: + description: Configuration block for snapshot related options. + Detailed below. DEPRECATED. For domains running Elasticsearch + 5.3 and later, Amazon ES takes hourly automated snapshots, making + this setting irrelevant. For domains running earlier versions + of Elasticsearch, Amazon ES takes daily automated snapshots. + items: + properties: + automatedSnapshotStartHour: + description: Hour during which the service takes an automated + daily snapshot of the indices in the domain. + type: number + type: object + type: array + tags: + additionalProperties: + type: string + description: Map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: Map of tags assigned to the resource, including those + inherited from the provider default_tags configuration block. + type: object + vpcOptions: + description: Configuration block for VPC related options. Adding + or removing this configuration forces a new resource (documentation). + Detailed below. + items: + properties: + securityGroupIds: + description: List of VPC Security Group IDs to be applied + to the Elasticsearch domain endpoints. If omitted, the + default Security Group for the VPC will be used. + items: + type: string + type: array + subnetIds: + description: List of VPC Subnet IDs for the Elasticsearch + domain endpoints to be created in. + items: + type: string + type: array + type: object + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -509,42 +846,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -643,8 +944,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: DomainStatus defines the observed state of Domain. properties: @@ -1051,6 +1353,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/elasticsearch.aws.kubedb.com_domainsamloptions.yaml b/charts/kubedb-provider-aws/crds/elasticsearch.aws.kubedb.com_domainsamloptions.yaml index 166097340..829f1d8a5 100644 --- a/charts/kubedb-provider-aws/crds/elasticsearch.aws.kubedb.com_domainsamloptions.yaml +++ b/charts/kubedb-provider-aws/crds/elasticsearch.aws.kubedb.com_domainsamloptions.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: domainsamloptions.elasticsearch.aws.kubedb.com spec: group: elasticsearch.aws.kubedb.com @@ -55,7 +55,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -89,9 +89,6 @@ spec: description: The Metadata of the SAML application in xml format. type: string - required: - - entityId - - metadataContent type: object type: array masterBackendRole: @@ -135,21 +132,87 @@ spec: type: object type: array type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + samlOptions: + description: The SAML authentication options for an AWS Elasticsearch + Domain. + items: + properties: + enabled: + description: Whether SAML authentication is enabled. + type: boolean + idp: + description: Information from your identity provider. + items: + properties: + entityId: + description: The unique Entity ID of the application + in SAML Identity Provider. + type: string + metadataContent: + description: The Metadata of the SAML application + in xml format. + type: string + type: object + type: array + masterBackendRole: + description: This backend role from the SAML IdP receives + full permissions to the cluster, equivalent to a new master + user. + type: string + rolesKey: + description: Element of the SAML assertion to use for backend + roles. Default is roles. + type: string + sessionTimeoutMinutes: + description: Duration of a session in minutes after a user + logs in. Default is 60. Maximum value is 1,440. + type: number + subjectKey: + description: Custom SAML attribute to use for user names. + Default is an empty string - "". This will cause Elasticsearch + to use the NameID element of the Subject, which is the + default location for name identifiers in the SAML specification. + type: string + type: object + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -188,42 +251,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -322,8 +349,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: DomainSAMLOptionsStatus defines the observed state of DomainSAMLOptions. properties: @@ -410,6 +438,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/iam.aws.kubedb.com_roles.yaml b/charts/kubedb-provider-aws/crds/iam.aws.kubedb.com_roles.yaml new file mode 100644 index 000000000..3ec8ccecb --- /dev/null +++ b/charts/kubedb-provider-aws/crds/iam.aws.kubedb.com_roles.yaml @@ -0,0 +1,522 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: roles.iam.aws.kubedb.com +spec: + group: iam.aws.kubedb.com + names: + categories: + - crossplane + - managed + - aws + kind: Role + listKind: RoleList + plural: roles + singular: role + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: Role is the Schema for the Roles API. Provides an IAM role. + 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: RoleSpec defines the desired state of Role + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + assumeRolePolicy: + description: Policy that grants an entity permission to assume + the role. + type: string + description: + description: Description of the role. + type: string + forceDetachPolicies: + description: Whether to force detaching any policies the role + has before destroying it. Defaults to false. + type: boolean + inlinePolicy: + description: Configuration block defining an exclusive set of + IAM inline policies associated with the IAM role. See below. + If no blocks are configured, Crossplane will not manage any + inline policies in this resource. Configuring one empty block + (i.e., inline_policy {}) will cause Crossplane to remove all + inline policies added out of band on apply. + items: + properties: + name: + description: Friendly name of the role. See IAM Identifiers + for more information. + type: string + policy: + description: Policy document as a JSON formatted string. + type: string + type: object + type: array + managedPolicyArns: + description: Set of exclusive IAM managed policy ARNs to attach + to the IAM role. If this attribute is not configured, Crossplane + will ignore policy attachments to this resource. When configured, + Crossplane will align the role's managed policy attachments + with this set by attaching or detaching managed policies. Configuring + an empty set (i.e., managed_policy_arns = []) will cause Crossplane + to remove all managed policy attachments. + items: + type: string + type: array + maxSessionDuration: + description: Maximum session duration (in seconds) that you want + to set for the specified role. If you do not specify a value + for this setting, the default maximum of one hour is applied. + This setting can have a value from 1 hour to 12 hours. + type: number + path: + description: Path to the role. See IAM Identifiers for more information. + type: string + permissionsBoundary: + description: ARN of the policy that is used to set the permissions + boundary for the role. + type: string + tags: + additionalProperties: + type: string + description: Key-value mapping of tags for the IAM role. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + assumeRolePolicy: + description: Policy that grants an entity permission to assume + the role. + type: string + description: + description: Description of the role. + type: string + forceDetachPolicies: + description: Whether to force detaching any policies the role + has before destroying it. Defaults to false. + type: boolean + inlinePolicy: + description: Configuration block defining an exclusive set of + IAM inline policies associated with the IAM role. See below. + If no blocks are configured, Crossplane will not manage any + inline policies in this resource. Configuring one empty block + (i.e., inline_policy {}) will cause Crossplane to remove all + inline policies added out of band on apply. + items: + properties: + name: + description: Friendly name of the role. See IAM Identifiers + for more information. + type: string + policy: + description: Policy document as a JSON formatted string. + type: string + type: object + type: array + managedPolicyArns: + description: Set of exclusive IAM managed policy ARNs to attach + to the IAM role. If this attribute is not configured, Crossplane + will ignore policy attachments to this resource. When configured, + Crossplane will align the role's managed policy attachments + with this set by attaching or detaching managed policies. Configuring + an empty set (i.e., managed_policy_arns = []) will cause Crossplane + to remove all managed policy attachments. + items: + type: string + type: array + maxSessionDuration: + description: Maximum session duration (in seconds) that you want + to set for the specified role. If you do not specify a value + for this setting, the default maximum of one hour is applied. + This setting can have a value from 1 hour to 12 hours. + type: number + path: + description: Path to the role. See IAM Identifiers for more information. + type: string + permissionsBoundary: + description: ARN of the policy that is used to set the permissions + boundary for the role. + type: string + tags: + additionalProperties: + type: string + description: Key-value mapping of tags for the IAM role. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.assumeRolePolicy is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.assumeRolePolicy) + || (has(self.initProvider) && has(self.initProvider.assumeRolePolicy))' + status: + description: RoleStatus defines the observed state of Role. + properties: + atProvider: + properties: + arn: + description: Amazon Resource Name (ARN) specifying the role. + type: string + assumeRolePolicy: + description: Policy that grants an entity permission to assume + the role. + type: string + createDate: + description: Creation date of the IAM role. + type: string + description: + description: Description of the role. + type: string + forceDetachPolicies: + description: Whether to force detaching any policies the role + has before destroying it. Defaults to false. + type: boolean + id: + description: Name of the role. + type: string + inlinePolicy: + description: Configuration block defining an exclusive set of + IAM inline policies associated with the IAM role. See below. + If no blocks are configured, Crossplane will not manage any + inline policies in this resource. Configuring one empty block + (i.e., inline_policy {}) will cause Crossplane to remove all + inline policies added out of band on apply. + items: + properties: + name: + description: Friendly name of the role. See IAM Identifiers + for more information. + type: string + policy: + description: Policy document as a JSON formatted string. + type: string + type: object + type: array + managedPolicyArns: + description: Set of exclusive IAM managed policy ARNs to attach + to the IAM role. If this attribute is not configured, Crossplane + will ignore policy attachments to this resource. When configured, + Crossplane will align the role's managed policy attachments + with this set by attaching or detaching managed policies. Configuring + an empty set (i.e., managed_policy_arns = []) will cause Crossplane + to remove all managed policy attachments. + items: + type: string + type: array + maxSessionDuration: + description: Maximum session duration (in seconds) that you want + to set for the specified role. If you do not specify a value + for this setting, the default maximum of one hour is applied. + This setting can have a value from 1 hour to 12 hours. + type: number + path: + description: Path to the role. See IAM Identifiers for more information. + type: string + permissionsBoundary: + description: ARN of the policy that is used to set the permissions + boundary for the role. + type: string + roleLastUsed: + description: Contains information about the last time that an + IAM role was used. See role_last_used for details. + items: + properties: + lastUsedDate: + type: string + region: + description: The name of the AWS Region in which the role + was last used. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: Key-value mapping of tags for the IAM role. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + uniqueId: + description: Stable and unique string identifying the role. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-aws/crds/kafka.aws.kubedb.com_clusters.yaml b/charts/kubedb-provider-aws/crds/kafka.aws.kubedb.com_clusters.yaml index ed83daf73..0f6e12a0d 100644 --- a/charts/kubedb-provider-aws/crds/kafka.aws.kubedb.com_clusters.yaml +++ b/charts/kubedb-provider-aws/crds/kafka.aws.kubedb.com_clusters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: clusters.kafka.aws.kubedb.com spec: group: kafka.aws.kubedb.com @@ -55,7 +55,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -320,8 +320,6 @@ spec: type: array type: object type: array - required: - - instanceType type: object type: array clientAuthentication: @@ -378,9 +376,6 @@ spec: description: Revision of the MSK Configuration to use in the cluster. type: number - required: - - arn - - revision type: object type: array encryptionInfo: @@ -514,92 +509,6 @@ spec: description: Name of the Cloudwatch Log Group to deliver logs to. type: string - logGroupRef: - description: Reference to a Group in cloudwatchlogs - to populate logGroup. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether - resolution of this reference is required. - The default is 'Required', which means - the reconcile will fail if the reference - cannot be resolved. 'Optional' means - this reference will be a no-op if - it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when - this reference should be resolved. - The default is 'IfNotPresent', which - will attempt to resolve the reference - only when the corresponding field - is not present. Use 'Always' to resolve - the reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - logGroupSelector: - description: Selector for a Group in cloudwatchlogs - to populate logGroup. - properties: - matchControllerRef: - description: MatchControllerRef ensures - an object with the same controller reference - as the selecting object is selected. - type: boolean - matchLabels: - additionalProperties: - type: string - description: MatchLabels ensures an object - with matching labels is selected. - type: object - policy: - description: Policies for selection. - properties: - resolution: - default: Required - description: Resolution specifies whether - resolution of this reference is required. - The default is 'Required', which means - the reconcile will fail if the reference - cannot be resolved. 'Optional' means - this reference will be a no-op if - it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when - this reference should be resolved. - The default is 'IfNotPresent', which - will attempt to resolve the reference - only when the corresponding field - is not present. Use 'Always' to resolve - the reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - type: object - required: - - enabled type: object type: array firehose: @@ -613,8 +522,6 @@ spec: description: 'Controls whether provisioned throughput is enabled or not. Default value: false.' type: boolean - required: - - enabled type: object type: array s3: @@ -624,90 +531,6 @@ spec: description: Name of the S3 bucket to deliver logs to. type: string - bucketRef: - description: Reference to a Bucket in s3 to - populate bucket. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether - resolution of this reference is required. - The default is 'Required', which means - the reconcile will fail if the reference - cannot be resolved. 'Optional' means - this reference will be a no-op if - it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when - this reference should be resolved. - The default is 'IfNotPresent', which - will attempt to resolve the reference - only when the corresponding field - is not present. Use 'Always' to resolve - the reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - bucketSelector: - description: Selector for a Bucket in s3 to - populate bucket. - properties: - matchControllerRef: - description: MatchControllerRef ensures - an object with the same controller reference - as the selecting object is selected. - type: boolean - matchLabels: - additionalProperties: - type: string - description: MatchLabels ensures an object - with matching labels is selected. - type: object - policy: - description: Policies for selection. - properties: - resolution: - default: Required - description: Resolution specifies whether - resolution of this reference is required. - The default is 'Required', which means - the reconcile will fail if the reference - cannot be resolved. 'Optional' means - this reference will be a no-op if - it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when - this reference should be resolved. - The default is 'IfNotPresent', which - will attempt to resolve the reference - only when the corresponding field - is not present. Use 'Always' to resolve - the reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - type: object enabled: description: 'Controls whether provisioned throughput is enabled or not. Default value: false.' @@ -716,14 +539,10 @@ spec: description: Prefix to append to the folder name. type: string - required: - - enabled type: object type: array type: object type: array - required: - - brokerLogs type: object type: array numberOfBrokerNodes: @@ -750,8 +569,6 @@ spec: description: Indicates whether you want to enable or disable the JMX Exporter. type: boolean - required: - - enabledInBroker type: object type: array nodeExporter: @@ -763,14 +580,10 @@ spec: description: Indicates whether you want to enable or disable the JMX Exporter. type: boolean - required: - - enabledInBroker type: object type: array type: object type: array - required: - - prometheus type: object type: array region: @@ -796,21 +609,327 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + brokerNodeGroupInfo: + description: Configuration block for the broker nodes of the Kafka + cluster. + items: + properties: + azDistribution: + description: The distribution of broker nodes across availability + zones (documentation). Currently the only valid value + is DEFAULT. + type: string + connectivityInfo: + description: Information about the cluster access configuration. + See below. For security reasons, you can't turn on public + access while creating an MSK cluster. However, you can + update an existing cluster to make it publicly accessible. + You can also create a new cluster and then update it to + make it publicly accessible (documentation). + items: + properties: + publicAccess: + description: Access control settings for brokers. + See below. + items: + properties: + type: + description: 'Public access type. Valida values: + DISABLED, SERVICE_PROVIDED_EIPS.' + type: string + type: object + type: array + type: object + type: array + instanceType: + description: Specify the instance type to use for the kafka + brokersE.g., kafka.m5.large. (Pricing info) + type: string + storageInfo: + description: A block that contains information about storage + volumes attached to MSK broker nodes. See below. + items: + properties: + ebsStorageInfo: + description: A block that contains EBS volume information. + See below. + items: + properties: + provisionedThroughput: + description: A block that contains EBS volume + provisioned throughput information. To provision + storage throughput, you must choose broker + type kafka.m5.4xlarge or larger. See below. + items: + properties: + enabled: + description: 'Controls whether provisioned + throughput is enabled or not. Default + value: false.' + type: boolean + volumeThroughput: + description: Throughput value of the EBS + volumes for the data drive on each kafka + broker node in MiB per second. The minimum + value is 250. The maximum value varies + between broker type. You can refer to + the valid values for the maximum volume + throughput at the following documentation + on throughput bottlenecks + type: number + type: object + type: array + volumeSize: + description: The size in GiB of the EBS volume + for the data drive on each broker node. Minimum + value of 1 and maximum value of 16384. + type: number + type: object + type: array + type: object + type: array + type: object + type: array + clientAuthentication: + description: Configuration block for specifying a client authentication. + See below. + items: + properties: + sasl: + description: Configuration block for specifying SASL client + authentication. See below. + items: + properties: + iam: + description: Enables IAM client authentication. Defaults + to false. + type: boolean + scram: + description: Enables SCRAM client authentication via + AWS Secrets Manager. Defaults to false. + type: boolean + type: object + type: array + tls: + description: Configuration block for specifying TLS client + authentication. See below. + items: + properties: + certificateAuthorityArns: + description: List of ACM Certificate Authority Amazon + Resource Names (ARNs). + items: + type: string + type: array + type: object + type: array + unauthenticated: + description: Enables unauthenticated access. + type: boolean + type: object + type: array + clusterName: + description: Name of the MSK cluster. + type: string + configurationInfo: + description: Configuration block for specifying a MSK Configuration + to attach to Kafka brokers. See below. + items: + properties: + arn: + description: Amazon Resource Name (ARN) of the MSK Configuration + to use in the cluster. + type: string + revision: + description: Revision of the MSK Configuration to use in + the cluster. + type: number + type: object + type: array + encryptionInfo: + description: Configuration block for specifying encryption. See + below. + items: + properties: + encryptionInTransit: + description: Configuration block to specify encryption in + transit. See below. + items: + properties: + clientBroker: + description: 'Encryption setting for data in transit + between clients and brokers. Valid values: TLS, + TLS_PLAINTEXT, and PLAINTEXT. Default value is TLS.' + type: string + inCluster: + description: 'Whether data communication among broker + nodes is encrypted. Default value: true.' + type: boolean + type: object + type: array + type: object + type: array + enhancedMonitoring: + description: Specify the desired enhanced MSK CloudWatch monitoring + level. See Monitoring Amazon MSK with Amazon CloudWatch + type: string + kafkaVersion: + description: Specify the desired Kafka software version. + type: string + loggingInfo: + description: Configuration block for streaming broker logs to + Cloudwatch/S3/Kinesis Firehose. See below. + items: + properties: + brokerLogs: + description: Configuration block for Broker Logs settings + for logging info. See below. + items: + properties: + cloudwatchLogs: + items: + properties: + enabled: + description: 'Controls whether provisioned throughput + is enabled or not. Default value: false.' + type: boolean + logGroup: + description: Name of the Cloudwatch Log Group + to deliver logs to. + type: string + type: object + type: array + firehose: + items: + properties: + deliveryStream: + description: Name of the Kinesis Data Firehose + delivery stream to deliver logs to. + type: string + enabled: + description: 'Controls whether provisioned throughput + is enabled or not. Default value: false.' + type: boolean + type: object + type: array + s3: + items: + properties: + bucket: + description: Name of the S3 bucket to deliver + logs to. + type: string + enabled: + description: 'Controls whether provisioned throughput + is enabled or not. Default value: false.' + type: boolean + prefix: + description: Prefix to append to the folder + name. + type: string + type: object + type: array + type: object + type: array + type: object + type: array + numberOfBrokerNodes: + description: The desired total number of broker nodes in the kafka + cluster. It must be a multiple of the number of specified client + subnets. + type: number + openMonitoring: + description: Configuration block for JMX and Node monitoring for + the MSK cluster. See below. + items: + properties: + prometheus: + description: Configuration block for Prometheus settings + for open monitoring. See below. + items: + properties: + jmxExporter: + description: Configuration block for JMX Exporter. + See below. + items: + properties: + enabledInBroker: + description: Indicates whether you want to enable + or disable the JMX Exporter. + type: boolean + type: object + type: array + nodeExporter: + description: Configuration block for Node Exporter. + See below. + items: + properties: + enabledInBroker: + description: Indicates whether you want to enable + or disable the JMX Exporter. + type: boolean + type: object + type: array + type: object + type: array + type: object + type: array + storageMode: + description: 'Controls storage mode for supported storage tiers. + Valid values are: LOCAL or TIERED.' + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -849,42 +968,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -983,16 +1066,25 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: brokerNodeGroupInfo is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.brokerNodeGroupInfo) - - message: clusterName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.clusterName) - - message: kafkaVersion is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.kafkaVersion) - - message: numberOfBrokerNodes is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.numberOfBrokerNodes) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.brokerNodeGroupInfo is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.brokerNodeGroupInfo) + || (has(self.initProvider) && has(self.initProvider.brokerNodeGroupInfo))' + - message: spec.forProvider.clusterName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.clusterName) + || (has(self.initProvider) && has(self.initProvider.clusterName))' + - message: spec.forProvider.kafkaVersion is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.kafkaVersion) + || (has(self.initProvider) && has(self.initProvider.kafkaVersion))' + - message: spec.forProvider.numberOfBrokerNodes is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.numberOfBrokerNodes) + || (has(self.initProvider) && has(self.initProvider.numberOfBrokerNodes))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ClusterStatus defines the observed state of Cluster. properties: @@ -1422,6 +1514,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/kafka.aws.kubedb.com_configurations.yaml b/charts/kubedb-provider-aws/crds/kafka.aws.kubedb.com_configurations.yaml index 21934d237..8cfd32708 100644 --- a/charts/kubedb-provider-aws/crds/kafka.aws.kubedb.com_configurations.yaml +++ b/charts/kubedb-provider-aws/crds/kafka.aws.kubedb.com_configurations.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: configurations.kafka.aws.kubedb.com spec: group: kafka.aws.kubedb.com @@ -33,9 +33,8 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Configuration is the Schema for the Configurations API. Upbound - official provider resource for managing an amazon managed streaming for - kafka configuration + description: Configuration is the Schema for the Configurations API. provider + resource for managing an amazon managed streaming for kafka configuration properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -57,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -88,21 +87,60 @@ spec: properties are documented in the MSK Developer Guide. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + description: + description: Description of the configuration. + type: string + kafkaVersions: + description: List of Apache Kafka versions which can use this + configuration. + items: + type: string + type: array + name: + description: Name of the configuration. + type: string + serverProperties: + description: Contents of the server.properties file. Supported + properties are documented in the MSK Developer Guide. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -141,42 +179,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -275,12 +277,17 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: name is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.name) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: serverProperties is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.serverProperties) + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + - message: spec.forProvider.serverProperties is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.serverProperties) + || (has(self.initProvider) && has(self.initProvider.serverProperties))' status: description: ConfigurationStatus defines the observed state of Configuration. properties: @@ -344,6 +351,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/kinesis.aws.kubedb.com_streams.yaml b/charts/kubedb-provider-aws/crds/kinesis.aws.kubedb.com_streams.yaml index f27658343..cdbec1a46 100644 --- a/charts/kubedb-provider-aws/crds/kinesis.aws.kubedb.com_streams.yaml +++ b/charts/kubedb-provider-aws/crds/kinesis.aws.kubedb.com_streams.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: streams.kinesis.aws.kubedb.com spec: group: kinesis.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -80,6 +80,79 @@ spec: for encryption. You can also use a Kinesis-owned master key by specifying the alias alias/aws/kinesis. type: string + kmsKeyIdRef: + description: Reference to a Key in kms to populate kmsKeyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + kmsKeyIdSelector: + description: Selector for a Key in kms to populate kmsKeyId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object region: description: Region is the region you'd like your resource to be created in. @@ -114,8 +187,6 @@ spec: description: Specifies the capacity mode of the stream. Must be either PROVISIONED or ON_DEMAND. type: string - required: - - streamMode type: object type: array tags: @@ -133,21 +204,99 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + encryptionType: + description: The encryption type to use. The only acceptable values + are NONE or KMS. The default value is NONE. + type: string + enforceConsumerDeletion: + description: A boolean that indicates all registered consumers + should be deregistered from the stream so that the stream can + be destroyed without error. The default value is false. + type: boolean + retentionPeriod: + description: Length of time data records are accessible after + they are added to the stream. The maximum value of a stream's + retention period is 8760 hours. Minimum value is 24. Default + is 24. + type: number + shardCount: + description: – The number of shards that the stream will use. + If the stream_mode is PROVISIONED, this field is required. Amazon + has guidelines for specifying the Stream size that should be + referenced when creating a Kinesis stream. See Amazon Kinesis + Streams for more. + type: number + shardLevelMetrics: + description: A list of shard-level CloudWatch metrics which can + be enabled for the stream. See Monitoring with CloudWatch for + more. Note that the value ALL should not be used; instead you + should provide an explicit list of metrics you wish to enable. + items: + type: string + type: array + streamModeDetails: + description: Indicates the capacity mode of the data stream. Detailed + below. + items: + properties: + streamMode: + description: Specifies the capacity mode of the stream. + Must be either PROVISIONED or ON_DEMAND. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -186,42 +335,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -320,8 +433,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: StreamStatus defines the observed state of Stream. properties: @@ -428,6 +542,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/kms.aws.kubedb.com_keys.yaml b/charts/kubedb-provider-aws/crds/kms.aws.kubedb.com_keys.yaml index 60128337f..152e0ac6c 100644 --- a/charts/kubedb-provider-aws/crds/kms.aws.kubedb.com_keys.yaml +++ b/charts/kubedb-provider-aws/crds/kms.aws.kubedb.com_keys.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: keys.kms.aws.kubedb.com spec: group: kms.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -141,21 +141,114 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + bypassPolicyLockoutSafetyCheck: + description: A flag to indicate whether to bypass the key policy + lockout safety check. Setting this value to true increases the + risk that the KMS key becomes unmanageable. Do not set this + value to true indiscriminately. For more information, refer + to the scenario in the Default Key Policy section in the AWS + Key Management Service Developer Guide. The default value is + false. + type: boolean + customKeyStoreId: + description: ID of the KMS Custom Key Store where the key will + be stored instead of KMS (eg CloudHSM). + type: string + customerMasterKeySpec: + description: 'Specifies whether the key contains a symmetric key + or an asymmetric key pair and the encryption algorithms or signing + algorithms that the key supports. Valid values: SYMMETRIC_DEFAULT, RSA_2048, + RSA_3072, RSA_4096, HMAC_256, ECC_NIST_P256, ECC_NIST_P384, + ECC_NIST_P521, or ECC_SECG_P256K1. Defaults to SYMMETRIC_DEFAULT. + For help with choosing a key spec, see the AWS KMS Developer + Guide.' + type: string + deletionWindowInDays: + description: The waiting period, specified in number of days. + After the waiting period ends, AWS KMS deletes the KMS key. + If you specify a value, it must be between 7 and 30, inclusive. + If you do not specify a value, it defaults to 30. If the KMS + key is a multi-Region primary key with replicas, the waiting + period begins when the last of its replica keys is deleted. + Otherwise, the waiting period begins immediately. + type: number + description: + description: The description of the key as viewed in AWS console. + type: string + enableKeyRotation: + description: Specifies whether key rotation is enabled. Defaults + to false. + type: boolean + isEnabled: + description: Specifies whether the key is enabled. Defaults to + true. + type: boolean + keyUsage: + description: 'Specifies the intended use of the key. Valid values: + ENCRYPT_DECRYPT, SIGN_VERIFY, or GENERATE_VERIFY_MAC. Defaults + to ENCRYPT_DECRYPT.' + type: string + multiRegion: + description: Indicates whether the KMS key is a multi-Region (true) + or regional (false) key. Defaults to false. + type: boolean + policy: + description: A valid policy JSON document. Although this is a + key policy, not an IAM policy, an aws_iam_policy_document, in + the form that designates a principal, can be used. + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the object. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -194,42 +287,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -328,8 +385,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: KeyStatus defines the observed state of Key. properties: @@ -447,6 +505,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_acls.yaml b/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_acls.yaml index 9a44ae4d8..3e5f1966b 100644 --- a/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_acls.yaml +++ b/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_acls.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: acls.memorydb.aws.kubedb.com spec: group: memorydb.aws.kubedb.com @@ -55,7 +55,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -90,21 +90,64 @@ spec: type: string type: array type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + userNames: + description: Set of MemoryDB user names to be included in this + ACL. + items: + type: string + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -143,42 +186,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -277,8 +284,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ACLStatus defines the observed state of ACL. properties: @@ -347,6 +355,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_clusters.yaml b/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_clusters.yaml index 0b2164ee9..43855e667 100644 --- a/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_clusters.yaml +++ b/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_clusters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: clusters.memorydb.aws.kubedb.com spec: group: memorydb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -95,6 +95,79 @@ spec: description: ARN of the KMS key used to encrypt the cluster at rest. type: string + kmsKeyArnRef: + description: Reference to a Key in kms to populate kmsKeyArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + kmsKeyArnSelector: + description: Selector for a Key in kms to populate kmsKeyArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object maintenanceWindow: description: 'Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format @@ -126,6 +199,83 @@ spec: description: Region is the region you'd like your resource to be created in. type: string + securityGroupIdRefs: + description: References to SecurityGroup in ec2 to populate securityGroupIds. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which + will attempt to resolve the reference only when the + corresponding field is not present. Use 'Always' to + resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + securityGroupIdSelector: + description: Selector for a list of SecurityGroup in ec2 to populate + securityGroupIds. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object securityGroupIds: description: Set of VPC Security Group ID-s to associate with this cluster. @@ -161,6 +311,190 @@ spec: description: The name of the subnet group to be used for the cluster. Defaults to a subnet group consisting of default VPC subnets. type: string + subnetGroupNameRef: + description: Reference to a SubnetGroup in memorydb to populate + subnetGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + subnetGroupNameSelector: + description: Selector for a SubnetGroup in memorydb to populate + subnetGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + tlsEnabled: + description: A flag to enable in-transit encryption on the cluster. + When set to false, the acl_name must be open-access. Defaults + to true. + type: boolean + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + aclName: + description: The name of the Access Control List to associate + with the cluster. + type: string + autoMinorVersionUpgrade: + description: When set to true, the cluster will automatically + receive minor engine version upgrades after launch. Defaults + to true. + type: boolean + dataTiering: + description: Enables data tiering. This option is not supported + by all instance types. For more information, see Data tiering. + type: boolean + description: + description: Description for the cluster. + type: string + engineVersion: + description: Version number of the Redis engine to be used for + the cluster. Downgrades are not supported. + type: string + finalSnapshotName: + description: Name of the final cluster snapshot to be created + when this resource is deleted. If omitted, no final snapshot + will be made. + type: string + maintenanceWindow: + description: 'Specifies the weekly time range during which maintenance + on the cluster is performed. Specify as a range in the format + ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance + window is a 60 minute period. Example: sun:23:00-mon:01:30.' + type: string + nodeType: + description: The compute and memory capacity of the nodes in the + cluster. See AWS documentation on supported node types as well + as vertical scaling. + type: string + numReplicasPerShard: + description: The number of replicas to apply to each shard, up + to a maximum of 5. Defaults to 1 (i.e. 2 nodes per shard). + type: number + numShards: + description: The number of shards in the cluster. Defaults to + 1. + type: number + parameterGroupName: + description: The name of the parameter group associated with the + cluster. + type: string + port: + description: The port number on which each of the nodes accepts + connections. Defaults to 6379. + type: number + snapshotArns: + description: List of ARN-s that uniquely identify RDB snapshot + files stored in S3. The snapshot files will be used to populate + the new cluster. Object names in the ARN-s cannot contain any + commas. + items: + type: string + type: array + snapshotName: + description: The name of a snapshot from which to restore data + into the new cluster. + type: string + snapshotRetentionLimit: + description: The number of days for which MemoryDB retains automatic + snapshots before deleting them. When set to 0, automatic backups + are disabled. Defaults to 0. + type: number + snapshotWindow: + description: 'The daily time range (in UTC) during which MemoryDB + begins taking a daily snapshot of your shard. Example: 05:00-09:00.' + type: string + snsTopicArn: + description: ARN of the SNS topic to which cluster notifications + are sent. + type: string tags: additionalProperties: type: string @@ -181,21 +515,31 @@ spec: to true. type: boolean type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -234,42 +578,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -368,12 +676,17 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: aclName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.aclName) - - message: nodeType is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.nodeType) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.aclName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.aclName) + || (has(self.initProvider) && has(self.initProvider.aclName))' + - message: spec.forProvider.nodeType is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.nodeType) + || (has(self.initProvider) && has(self.initProvider.nodeType))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ClusterStatus defines the observed state of Cluster. properties: @@ -591,6 +904,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_parametergroups.yaml b/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_parametergroups.yaml index 1dc6b6e69..ebe9d697e 100644 --- a/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_parametergroups.yaml +++ b/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_parametergroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: parametergroups.memorydb.aws.kubedb.com spec: group: memorydb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -85,9 +85,6 @@ spec: value: description: The value of the parameter. type: string - required: - - name - - value type: object type: array region: @@ -109,21 +106,79 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + description: + description: Description for the parameter group. + type: string + family: + description: The engine version that the parameter group can be + used with. + type: string + parameter: + description: Set of MemoryDB parameters to apply. Any parameters + not specified will fall back to their family defaults. Detailed + below. + items: + properties: + name: + description: The name of the parameter. + type: string + value: + description: The value of the parameter. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -162,42 +217,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -296,10 +315,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: family is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.family) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.family is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.family) + || (has(self.initProvider) && has(self.initProvider.family))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ParameterGroupStatus defines the observed state of ParameterGroup. properties: @@ -380,6 +402,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_snapshots.yaml b/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_snapshots.yaml index f8b1ed638..2893883a6 100644 --- a/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_snapshots.yaml +++ b/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_snapshots.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: snapshots.memorydb.aws.kubedb.com spec: group: memorydb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -69,10 +69,156 @@ spec: clusterName: description: Name of the MemoryDB cluster to take a snapshot of. type: string + clusterNameRef: + description: Reference to a Cluster in memorydb to populate clusterName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + clusterNameSelector: + description: Selector for a Cluster in memorydb to populate clusterName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object kmsKeyArn: description: ARN of the KMS key used to encrypt the snapshot at rest. type: string + kmsKeyArnRef: + description: Reference to a Key in kms to populate kmsKeyArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + kmsKeyArnSelector: + description: Selector for a Key in kms to populate kmsKeyArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object region: description: Region is the region you'd like your resource to be created in. @@ -92,21 +238,58 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -145,42 +328,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -279,10 +426,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: clusterName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.clusterName) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: SnapshotStatus defines the observed state of Snapshot. properties: @@ -406,6 +552,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_subnetgroups.yaml b/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_subnetgroups.yaml index 6a5f82c44..e1b827802 100644 --- a/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_subnetgroups.yaml +++ b/charts/kubedb-provider-aws/crds/memorydb.aws.kubedb.com_subnetgroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: subnetgroups.memorydb.aws.kubedb.com spec: group: memorydb.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -73,6 +73,83 @@ spec: description: Region is the region you'd like your resource to be created in. type: string + subnetIdRefs: + description: References to Subnet in ec2 to populate subnetIds. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which + will attempt to resolve the reference only when the + corresponding field is not present. Use 'Always' to + resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + subnetIdSelector: + description: Selector for a list of Subnet in ec2 to populate + subnetIds. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object subnetIds: description: Set of VPC Subnet ID-s for the subnet group. At least one subnet must be provided. @@ -94,21 +171,61 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + description: + description: Description for the subnet group. + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -147,42 +264,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -281,10 +362,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: subnetIds is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.subnetIds) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: SubnetGroupStatus defines the observed state of SubnetGroup. properties: @@ -356,6 +436,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusteractivitystreams.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusteractivitystreams.yaml index b3bad4c1d..115bf51e4 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusteractivitystreams.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusteractivitystreams.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: clusteractivitystreams.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -78,6 +78,79 @@ spec: is the key ARN, key ID, alias ARN, or alias name for the KMS key. type: string + kmsKeyIdRef: + description: Reference to a Key in kms to populate kmsKeyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + kmsKeyIdSelector: + description: Selector for a Key in kms to populate kmsKeyId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object mode: description: 'Specifies the mode of the database activity stream. Database events such as a change or access generate an activity @@ -91,22 +164,130 @@ spec: resourceArn: description: The Amazon Resource Name (ARN) of the DB cluster. type: string + resourceArnRef: + description: Reference to a Cluster in rds to populate resourceArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceArnSelector: + description: Selector for a Cluster in rds to populate resourceArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + engineNativeAuditFieldsIncluded: + description: Specifies whether the database activity stream includes + engine-native audit fields. This option only applies to an Oracle + DB instance. By default, no engine-native audit fields are included. + Defaults false. + type: boolean + mode: + description: 'Specifies the mode of the database activity stream. + Database events such as a change or access generate an activity + stream event. The database session can handle these events either + synchronously or asynchronously. One of: sync, async.' + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -145,42 +326,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -279,14 +424,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: kmsKeyId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.kmsKeyId) - - message: mode is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.mode) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: resourceArn is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.resourceArn) + - message: spec.forProvider.mode is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.mode) + || (has(self.initProvider) && has(self.initProvider.mode))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ClusterActivityStreamStatus defines the observed state of ClusterActivityStream. @@ -355,6 +499,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterendpoints.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterendpoints.yaml index d32e1bcc8..2ab130bad 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterendpoints.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterendpoints.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: clusterendpoints.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -69,6 +69,79 @@ spec: clusterIdentifier: description: The cluster identifier. type: string + clusterIdentifierRef: + description: Reference to a Cluster in rds to populate clusterIdentifier. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + clusterIdentifierSelector: + description: Selector for a Cluster in rds to populate clusterIdentifier. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object customEndpointType: description: 'The type of the endpoint. One of: READER , ANY .' type: string @@ -105,21 +178,75 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + customEndpointType: + description: 'The type of the endpoint. One of: READER , ANY .' + type: string + excludedMembers: + description: List of DB instance identifiers that aren't part + of the custom endpoint group. All other eligible instances are + reachable through the custom endpoint. Only relevant if the + list of static members is empty. Conflicts with static_members. + items: + type: string + type: array + staticMembers: + description: List of DB instance identifiers that are part of + the custom endpoint group. Conflicts with excluded_members. + items: + type: string + type: array + tags: + additionalProperties: + type: string + description: Key-value map of resource tags. If configured with + a provider default_tags configuration block present, tags with + matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -158,42 +285,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -292,12 +383,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: clusterIdentifier is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.clusterIdentifier) - - message: customEndpointType is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.customEndpointType) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.customEndpointType is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.customEndpointType) + || (has(self.initProvider) && has(self.initProvider.customEndpointType))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ClusterEndpointStatus defines the observed state of ClusterEndpoint. properties: @@ -380,6 +472,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterinstances.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterinstances.yaml index 458288ec3..055fd895a 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterinstances.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterinstances.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: clusterinstances.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -87,6 +87,79 @@ spec: description: Identifier of the aws_rds_cluster in which to launch this instance. type: string + clusterIdentifierRef: + description: Reference to a Cluster in rds to populate clusterIdentifier. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + clusterIdentifierSelector: + description: Selector for a Cluster in rds to populate clusterIdentifier. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object copyTagsToSnapshot: description: defined tags from the DB instance to snapshots of the DB instance. Default false. @@ -199,6 +272,79 @@ spec: on the AWS Documentation what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. type: string + monitoringRoleArnRef: + description: Reference to a Role in iam to populate monitoringRoleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + monitoringRoleArnSelector: + description: Selector for a Role in iam to populate monitoringRoleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object performanceInsightsEnabled: description: Specifies whether Performance Insights is enabled or not. @@ -325,21 +471,132 @@ spec: inherited from the provider default_tags configuration block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + applyImmediately: + description: Specifies whether any database modifications are + applied immediately, or during the next maintenance window. + Default isfalse. + type: boolean + autoMinorVersionUpgrade: + description: Indicates that minor engine upgrades will be applied + automatically to the DB instance during the maintenance window. + Default true. + type: boolean + availabilityZone: + description: EC2 Availability Zone that the DB instance is created + in. See docs about the details. + type: string + caCertIdentifier: + description: Identifier of the CA certificate for the DB instance. + type: string + copyTagsToSnapshot: + description: defined tags from the DB instance to snapshots of + the DB instance. Default false. + type: boolean + dbParameterGroupName: + description: Name of the DB parameter group to associate with + this instance. + type: string + engine: + description: 'Name of the database engine to be used for the RDS + instance. Valid Values: aurora-mysql, aurora-postgresql, mysql, + postgres.' + type: string + engineVersion: + description: Database engine version. + type: string + instanceClass: + description: Instance class to use. For details on CPU and memory, + see Scaling Aurora DB Instances. Aurora uses db.* instance classes/types. + Please see AWS Documentation for currently available instance + classes and complete details. + type: string + monitoringInterval: + description: 'Interval, in seconds, between points when Enhanced + Monitoring metrics are collected for the DB instance. To disable + collecting Enhanced Monitoring metrics, specify 0. The default + is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60.' + type: number + performanceInsightsEnabled: + description: Specifies whether Performance Insights is enabled + or not. + type: boolean + performanceInsightsRetentionPeriod: + description: Amount of time in days to retain Performance Insights + data. Valid values are 7, 731 (2 years) or a multiple of 31. + When specifying performance_insights_retention_period, performance_insights_enabled + needs to be set to true. Defaults to '7'. + type: number + preferredBackupWindow: + description: 'Daily time range during which automated backups + are created if automated backups are enabled. Eg: "04:00-09:00". + NOTE: If preferred_backup_window is set at the cluster level, + this argument must be omitted.' + type: string + preferredMaintenanceWindow: + description: 'Window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". + Eg: "Mon:00:00-Mon:03:00".' + type: string + promotionTier: + description: Default 0. Failover Priority setting on instance + level. The reader who has lower tier has higher priority to + get promoted to writer. + type: number + publiclyAccessible: + description: Bool to control if instance is publicly accessible. + Default false. See the documentation on Creating DB Instances + for more details on controlling this property. + type: boolean + tags: + additionalProperties: + type: string + description: Map of tags to assign to the instance. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: Map of tags assigned to the resource, including those + inherited from the provider default_tags configuration block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -378,42 +635,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -512,14 +733,17 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: clusterIdentifier is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.clusterIdentifier) - - message: engine is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.engine) - - message: instanceClass is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.instanceClass) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.engine is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.engine) + || (has(self.initProvider) && has(self.initProvider.engine))' + - message: spec.forProvider.instanceClass is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.instanceClass) + || (has(self.initProvider) && has(self.initProvider.instanceClass))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ClusterInstanceStatus defines the observed state of ClusterInstance. properties: @@ -699,6 +923,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterparametergroups.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterparametergroups.yaml index c42b25440..4bd06d46f 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterparametergroups.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterparametergroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: clusterparametergroups.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -90,9 +90,6 @@ spec: value: description: The value of the DB parameter. type: string - required: - - name - - value type: object type: array region: @@ -114,21 +111,84 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + description: + description: The description of the DB cluster parameter group. + type: string + family: + description: The family of the DB cluster parameter group. + type: string + parameter: + description: A list of DB parameters to apply. Note that parameters + may differ from a family to an other. Full list of all parameters + can be discovered via aws rds describe-db-cluster-parameters + after initial creation of the group. + items: + properties: + applyMethod: + description: '"immediate" (default), or "pending-reboot". + Some engines can''t apply some parameters without a reboot, + and you will need to specify "pending-reboot" here.' + type: string + name: + description: The name of the DB cluster parameter group. + type: string + value: + description: The value of the DB parameter. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -167,42 +227,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -301,10 +325,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: family is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.family) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.family is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.family) + || (has(self.initProvider) && has(self.initProvider.family))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ClusterParameterGroupStatus defines the observed state of ClusterParameterGroup. @@ -391,6 +418,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterroleassociations.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterroleassociations.yaml index 6d7d7b94d..0ead26dac 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterroleassociations.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusterroleassociations.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: clusterroleassociations.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -69,6 +69,79 @@ spec: dbClusterIdentifier: description: DB Cluster Identifier to associate with the IAM Role. type: string + dbClusterIdentifierRef: + description: Reference to a Cluster in rds to populate dbClusterIdentifier. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + dbClusterIdentifierSelector: + description: Selector for a Cluster in rds to populate dbClusterIdentifier. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object featureName: description: Name of the feature for association. This can be found in the AWS documentation relevant to the integration or @@ -83,22 +156,124 @@ spec: description: Amazon Resource Name (ARN) of the IAM Role to associate with the DB Cluster. type: string + roleArnRef: + description: Reference to a Role in iam to populate roleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + roleArnSelector: + description: Selector for a Role in iam to populate roleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + featureName: + description: Name of the feature for association. This can be + found in the AWS documentation relevant to the integration or + a full list is available in the SupportedFeatureNames list returned + by AWS CLI rds describe-db-engine-versions. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -137,42 +312,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -271,14 +410,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: dbClusterIdentifier is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.dbClusterIdentifier) - - message: featureName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.featureName) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: roleArn is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.roleArn) + - message: spec.forProvider.featureName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.featureName) + || (has(self.initProvider) && has(self.initProvider.featureName))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ClusterRoleAssociationStatus defines the observed state of ClusterRoleAssociation. @@ -336,6 +474,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusters.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusters.yaml index 3c846706f..ee103c75e 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusters.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clusters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: clusters.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -273,6 +273,79 @@ spec: description: ARN for the KMS encryption key. When specifying kms_key_id, storage_encrypted needs to be set to true. type: string + kmsKeyIdRef: + description: Reference to a Key in kms to populate kmsKeyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + kmsKeyIdSelector: + description: Selector for a Key in kms to populate kmsKeyId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object manageMasterUserPassword: description: Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if master_password @@ -305,6 +378,79 @@ spec: the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used. type: string + masterUserSecretKmsKeyIdRef: + description: Reference to a Key in kms to populate masterUserSecretKmsKeyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + masterUserSecretKmsKeyIdSelector: + description: Selector for a Key in kms to populate masterUserSecretKmsKeyId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object masterUsername: description: Username for the master DB user. Please refer to the RDS Naming Constraints. This argument does not support in-place @@ -442,82 +588,6 @@ spec: bucketName: description: Bucket name where your backup is stored type: string - bucketNameRef: - description: Reference to a Bucket in s3 to populate bucketName. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution - of this reference is required. The default is - 'Required', which means the reconcile will fail - if the reference cannot be resolved. 'Optional' - means this reference will be a no-op if it cannot - be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference - should be resolved. The default is 'IfNotPresent', - which will attempt to resolve the reference only - when the corresponding field is not present. Use - 'Always' to resolve the reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - bucketNameSelector: - description: Selector for a Bucket in s3 to populate bucketName. - properties: - matchControllerRef: - description: MatchControllerRef ensures an object with - the same controller reference as the selecting object - is selected. - type: boolean - matchLabels: - additionalProperties: - type: string - description: MatchLabels ensures an object with matching - labels is selected. - type: object - policy: - description: Policies for selection. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution - of this reference is required. The default is - 'Required', which means the reconcile will fail - if the reference cannot be resolved. 'Optional' - means this reference will be a no-op if it cannot - be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference - should be resolved. The default is 'IfNotPresent', - which will attempt to resolve the reference only - when the corresponding field is not present. Use - 'Always' to resolve the reference on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - type: object bucketPrefix: description: Can be blank, but is the path to your backup type: string @@ -531,10 +601,6 @@ spec: description: Version of the source engine used to make the backup type: string - required: - - ingestionRole - - sourceEngine - - sourceEngineVersion type: object type: array scalingConfiguration: @@ -600,9 +666,6 @@ spec: 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 1. type: number - required: - - maxCapacity - - minCapacity type: object type: array skipFinalSnapshot: @@ -654,70 +717,446 @@ spec: description: Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. type: object - vpcSecurityGroupIds: - description: List of VPC security groups to associate with the - Cluster + vpcSecurityGroupIdRefs: + description: References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. items: - type: string + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which + will attempt to resolve the reference only when the + corresponding field is not present. Use 'Always' to + resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object type: array - type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string - providerConfigRef: - default: - name: default - description: ProviderConfigReference specifies how the provider that - will be used to create, observe, update, and delete this managed - resource should be configured. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. + vpcSecurityGroupIdSelector: + description: Selector for a list of SecurityGroup in ec2 to populate + vpcSecurityGroupIds. properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + vpcSecurityGroupIds: + description: List of VPC security groups to associate with the + Cluster + items: + type: string + type: array + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + allocatedStorage: + description: The amount of storage in gibibytes (GiB) to allocate + to each DB instance in the Multi-AZ DB cluster. + type: number + allowMajorVersionUpgrade: + description: Enable to allow major engine version upgrades when + changing engine versions. Defaults to false. + type: boolean + applyImmediately: + description: Specifies whether any cluster modifications are applied + immediately, or during the next maintenance window. Default + is false. See Amazon RDS Documentation for more information. + type: boolean + availabilityZones: + description: List of EC2 Availability Zones for the DB cluster + storage where DB cluster instances can be created. We recommend + specifying 3 AZs or using the if necessary. A maximum of 3 + AZs can be configured. + items: + type: string + type: array + backtrackWindow: + description: Target backtrack window, in seconds. Only available + for aurora and aurora-mysql engines currently. To disable backtracking, + set this value to 0. Defaults to 0. Must be between 0 and 259200 + (72 hours) + type: number + backupRetentionPeriod: + description: Days to retain backups for. Default 1 + type: number + clusterMembers: + description: – List of RDS Instances that are a part of this cluster + items: + type: string + type: array + copyTagsToSnapshot: + description: – Copy all Cluster tags to snapshots. Default is + false. + type: boolean + databaseName: + description: 'Name for an automatically created database on cluster + creation. There are different naming restrictions per database + engine: RDS Naming Constraints' + type: string + dbClusterInstanceClass: + description: Compute and memory capacity of each DB instance in + the Multi-AZ DB cluster, for example db.m6g.xlarge. Not all + DB instance classes are available in all AWS Regions, or for + all database engines. For the full list of DB instance classes + and availability for your engine, see DB instance class in the + Amazon RDS User Guide. (This setting is required to create a + Multi-AZ DB cluster). + type: string + dbClusterParameterGroupName: + type: string + dbInstanceParameterGroupName: + description: Instance parameter group to associate with all instances + of the DB cluster. The db_instance_parameter_group_name parameter + is only valid in combination with the allow_major_version_upgrade + parameter. + type: string + deletionProtection: + description: If the DB instance should have deletion protection + enabled. The database can't be deleted when this value is set + to true. The default is false. + type: boolean + enableGlobalWriteForwarding: + description: Whether cluster should forward writes to an associated + global cluster. Applied to secondary clusters to enable them + to forward writes to an aws_rds_global_cluster's primary cluster. + See the Aurora Userguide documentation for more information. + type: boolean + enableHttpEndpoint: + description: Enable HTTP endpoint (data API). Only valid when + engine_mode is set to serverless. + type: boolean + enabledCloudwatchLogsExports: + description: 'Set of log types to export to cloudwatch. If omitted, + no logs will be exported. The following log types are supported: + audit, error, general, slowquery, postgresql (PostgreSQL).' + items: + type: string + type: array + engine: + description: 'Name of the database engine to be used for this + DB cluster. Valid Values: aurora-mysql, aurora-postgresql, mysql, + postgres. (Note that mysql and postgres are Multi-AZ RDS clusters).' + type: string + engineMode: + description: 'Database engine mode. Valid values: global (only + valid for Aurora MySQL 1.21 and earlier), multimaster, parallelquery, + provisioned, serverless. Defaults to: provisioned. See the RDS + User Guide for limitations when using serverless.' + type: string + engineVersion: + description: Database engine version. Updating this argument results + in an outage. See the Aurora MySQL and Aurora Postgres documentation + for your configured engine to determine this value, or by running + aws rds describe-db-engine-versions. For example with Aurora + MySQL 2, a potential value for this argument is 5.7.mysql_aurora.2.03.2. + The value can contain a partial version where supported by the + API. The actual engine version used is returned in the attribute + engine_version_actual, , see Attributes Reference below. + type: string + finalSnapshotIdentifier: + description: Name of your final DB snapshot when this DB cluster + is deleted. If omitted, no final snapshot will be made. + type: string + globalClusterIdentifier: + description: Global cluster identifier specified on aws_rds_global_cluster. + type: string + iamDatabaseAuthenticationEnabled: + description: Specifies whether or not mappings of AWS Identity + and Access Management (IAM) accounts to database accounts is + enabled. Please see AWS Documentation for availability and limitations. + type: boolean + iops: + description: Amount of Provisioned IOPS (input/output operations + per second) to be initially allocated for each DB instance in + the Multi-AZ DB cluster. For information about valid Iops values, + see Amazon RDS Provisioned IOPS storage to improve performance + in the Amazon RDS User Guide. (This setting is required to create + a Multi-AZ DB cluster). Must be a multiple between .5 and 50 + of the storage amount for the DB cluster. + type: number + manageMasterUserPassword: + description: Set to true to allow RDS to manage the master user + password in Secrets Manager. Cannot be set if master_password + is provided. + type: boolean + masterUsername: + description: Username for the master DB user. Please refer to + the RDS Naming Constraints. This argument does not support in-place + updates and cannot be changed during a restore from snapshot. + type: string + networkType: + description: 'Network type of the cluster. Valid values: IPV4, + DUAL.' + type: string + port: + description: Port on which the DB accepts connections + type: number + preferredBackupWindow: + description: 'Daily time range during which automated backups + are created if automated backups are enabled using the BackupRetentionPeriod + parameter.Time in UTC. Default: A 30-minute window selected + at random from an 8-hour block of time per regionE.g., 04:00-09:00' + type: string + preferredMaintenanceWindow: + description: Weekly time range during which system maintenance + can occur, in (UTC) e.g., wed:04:00-wed:04:30 + type: string + replicationSourceIdentifier: + description: ARN of a source DB cluster or DB instance if this + DB cluster is to be created as a Read Replica. + type: string + restoreToPointInTime: + description: Nested attribute for point in time restore. More + details below. + items: + properties: + restoreToTime: + description: Date and time in UTC format to restore the + database cluster to. Conflicts with use_latest_restorable_time. + type: string + restoreType: + description: Type of restore to be performed. Valid options + are full-copy (default) and copy-on-write. + type: string + useLatestRestorableTime: + description: Set to true to restore the database cluster + to the latest restorable backup time. Defaults to false. + Conflicts with restore_to_time. + type: boolean + type: object + type: array + s3Import: + description: Port on which the DB accepts connections + items: + properties: + bucketName: + description: Bucket name where your backup is stored + type: string + bucketPrefix: + description: Can be blank, but is the path to your backup + type: string + ingestionRole: + description: Role applied to load the data. + type: string + sourceEngine: + description: Source engine for the backup + type: string + sourceEngineVersion: + description: Version of the source engine used to make the + backup + type: string + type: object + type: array + scalingConfiguration: + description: Nested attribute with scaling properties. Only valid + when engine_mode is set to serverless. More details below. + items: + properties: + autoPause: + description: Whether to enable automatic pause. A DB cluster + can be paused only when it's idle (it has no connections). + If a DB cluster is paused for more than seven days, the + DB cluster might be backed up with a snapshot. In this + case, the DB cluster is restored when there is a request + to connect to it. Defaults to true. + type: boolean + maxCapacity: + description: Maximum capacity for an Aurora DB cluster in + serverless DB engine mode. The maximum capacity must be + greater than or equal to the minimum capacity. Valid Aurora + MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, + 256. Valid Aurora PostgreSQL capacity values are (2, 4, + 8, 16, 32, 64, 192, and 384). Defaults to 16. + type: number + minCapacity: + description: Minimum capacity for an Aurora DB cluster in + serverless DB engine mode. The minimum capacity must be + lesser than or equal to the maximum capacity. Valid Aurora + MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, + 256. Valid Aurora PostgreSQL capacity values are (2, 4, + 8, 16, 32, 64, 192, and 384). Defaults to 1. + type: number + secondsUntilAutoPause: + description: Time, in seconds, before an Aurora DB cluster + in serverless mode is paused. Valid values are 300 through + 86400. Defaults to 300. + type: number + timeoutAction: + description: 'Action to take when the timeout is reached. + Valid values: ForceApplyCapacityChange, RollbackCapacityChange. + Defaults to RollbackCapacityChange. See documentation.' + type: string + type: object + type: array + serverlessv2ScalingConfiguration: + description: Nested attribute with scaling properties for ServerlessV2. + Only valid when engine_mode is set to provisioned. More details + below. + items: + properties: + maxCapacity: + description: Maximum capacity for an Aurora DB cluster in + serverless DB engine mode. The maximum capacity must be + greater than or equal to the minimum capacity. Valid Aurora + MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, + 256. Valid Aurora PostgreSQL capacity values are (2, 4, + 8, 16, 32, 64, 192, and 384). Defaults to 16. + type: number + minCapacity: + description: Minimum capacity for an Aurora DB cluster in + serverless DB engine mode. The minimum capacity must be + lesser than or equal to the maximum capacity. Valid Aurora + MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, + 256. Valid Aurora PostgreSQL capacity values are (2, 4, + 8, 16, 32, 64, 192, and 384). Defaults to 1. + type: number + type: object + type: array + skipFinalSnapshot: + description: Determines whether a final DB snapshot is created + before the DB cluster is deleted. If true is specified, no DB + snapshot is created. If false is specified, a DB snapshot is + created before the DB cluster is deleted, using the value from + final_snapshot_identifier. Default is false. + type: boolean + snapshotIdentifier: + description: Specifies whether or not to create this cluster from + a snapshot. You can use either the name or ARN when specifying + a DB cluster snapshot, or the ARN when specifying a DB snapshot. + Conflicts with global_cluster_identifier. Clusters cannot be + restored from snapshot and joined to an existing global cluster + in a single operation. See the AWS documentation or the Global + Cluster Restored From Snapshot example for instructions on building + a global cluster starting with a snapshot. + type: string + sourceRegion: + description: The source region for an encrypted replica DB cluster. + type: string + storageEncrypted: + description: Specifies whether the DB cluster is encrypted. The + default is false for provisioned engine_mode and true for serverless + engine_mode. When restoring an unencrypted snapshot_identifier, + the kms_key_id argument must be provided to encrypt the restored + cluster. + type: boolean + storageType: + description: '(Forces new for Multi-AZ DB clusters) Specifies + the storage type to be associated with the DB cluster. For Aurora + DB clusters, storage_type modifications can be done in-place. + For Multi-AZ DB Clusters, the iops argument must also be set. + Valid values are: "", aurora-iopt1 (Aurora DB Clusters); io1 + (Multi-AZ DB Clusters). Default: "" (Aurora DB Clusters); io1 + (Multi-AZ DB Clusters).' + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the DB cluster. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: Map of tags assigned to the resource, including those + inherited from the provider default_tags configuration block. type: object - required: - - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. properties: name: description: Name of the referenced object. @@ -848,10 +1287,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: engine is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.engine) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.engine is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.engine) + || (has(self.initProvider) && has(self.initProvider.engine))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ClusterStatus defines the observed state of Cluster. properties: @@ -1276,6 +1718,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clustersnapshots.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clustersnapshots.yaml index 5599deee3..1482e565d 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clustersnapshots.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_clustersnapshots.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: clustersnapshots.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,6 +70,79 @@ spec: description: The DB Cluster Identifier from which to take the snapshot. type: string + dbClusterIdentifierRef: + description: Reference to a Cluster in rds to populate dbClusterIdentifier. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + dbClusterIdentifierSelector: + description: Selector for a Cluster in rds to populate dbClusterIdentifier. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object dbClusterSnapshotIdentifier: description: The Identifier for the snapshot. type: string @@ -92,21 +165,61 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + dbClusterSnapshotIdentifier: + description: The Identifier for the snapshot. + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the DB cluster. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -145,42 +258,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -279,12 +356,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: dbClusterIdentifier is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.dbClusterIdentifier) - - message: dbClusterSnapshotIdentifier is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.dbClusterSnapshotIdentifier) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.dbClusterSnapshotIdentifier is a required + parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.dbClusterSnapshotIdentifier) + || (has(self.initProvider) && has(self.initProvider.dbClusterSnapshotIdentifier))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ClusterSnapshotStatus defines the observed state of ClusterSnapshot. properties: @@ -393,6 +472,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_dbinstanceautomatedbackupsreplications.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_dbinstanceautomatedbackupsreplications.yaml index 612e17a2f..c38b7c6ac 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_dbinstanceautomatedbackupsreplications.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_dbinstanceautomatedbackupsreplications.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: dbinstanceautomatedbackupsreplications.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -57,7 +57,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -73,6 +73,79 @@ spec: Name (ARN) for the KMS encryption key in the destination AWS Region, for example, arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE. type: string + kmsKeyIdRef: + description: Reference to a Key in kms to populate kmsKeyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + kmsKeyIdSelector: + description: Selector for a Key in kms to populate kmsKeyId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object preSignedUrl: description: A URL that contains a Signature Version 4 signed request for the StartDBInstanceAutomatedBackupsReplication action @@ -90,22 +163,127 @@ spec: description: The Amazon Resource Name (ARN) of the source DB instance for the replicated automated backups, for example, arn:aws:rds:us-west-2:123456789012:db:mydatabase. type: string + sourceDbInstanceArnRef: + description: Reference to a Instance in rds to populate sourceDbInstanceArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + sourceDbInstanceArnSelector: + description: Selector for a Instance in rds to populate sourceDbInstanceArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + preSignedUrl: + description: A URL that contains a Signature Version 4 signed + request for the StartDBInstanceAutomatedBackupsReplication action + to be called in the AWS Region of the source DB instance. + type: string + retentionPeriod: + description: The retention period for the replicated automated + backups, defaults to 7. + type: number type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -144,42 +322,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -278,10 +420,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: sourceDbInstanceArn is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.sourceDbInstanceArn) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: DBInstanceAutomatedBackupsReplicationStatus defines the observed state of DBInstanceAutomatedBackupsReplication. @@ -345,6 +486,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_dbsnapshotcopies.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_dbsnapshotcopies.yaml index 4ef4a69f3..235b829ab 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_dbsnapshotcopies.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_dbsnapshotcopies.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: dbsnapshotcopies.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -75,6 +75,79 @@ spec: kmsKeyId: description: KMS key ID. type: string + kmsKeyIdRef: + description: Reference to a Key in kms to populate kmsKeyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + kmsKeyIdSelector: + description: Selector for a Key in kms to populate kmsKeyId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object optionGroupName: description: The name of an option group to associate with the copy of the snapshot. @@ -90,6 +163,79 @@ spec: sourceDbSnapshotIdentifier: description: Snapshot identifier of the source snapshot. type: string + sourceDbSnapshotIdentifierRef: + description: Reference to a Snapshot in rds to populate sourceDbSnapshotIdentifier. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + sourceDbSnapshotIdentifierSelector: + description: Selector for a Snapshot in rds to populate sourceDbSnapshotIdentifier. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object tags: additionalProperties: type: string @@ -111,21 +257,78 @@ spec: description: The Identifier for the snapshot. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + copyTags: + description: Whether to copy existing tags. Defaults to false. + type: boolean + destinationRegion: + description: The Destination region to place snapshot copy. + type: string + optionGroupName: + description: The name of an option group to associate with the + copy of the snapshot. + type: string + presignedUrl: + description: he URL that contains a Signature Version 4 signed + request. + type: string + tags: + additionalProperties: + type: string + description: Key-value map of resource tags. If configured with + a provider default_tags configuration block present, tags with + matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + targetCustomAvailabilityZone: + description: The external custom Availability Zone. + type: string + targetDbSnapshotIdentifier: + description: The Identifier for the snapshot. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -164,42 +367,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -298,12 +465,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: sourceDbSnapshotIdentifier is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.sourceDbSnapshotIdentifier) - - message: targetDbSnapshotIdentifier is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.targetDbSnapshotIdentifier) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + - message: spec.forProvider.targetDbSnapshotIdentifier is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.targetDbSnapshotIdentifier) + || (has(self.initProvider) && has(self.initProvider.targetDbSnapshotIdentifier))' status: description: DBSnapshotCopyStatus defines the observed state of DBSnapshotCopy. properties: @@ -427,6 +595,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_eventsubscriptions.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_eventsubscriptions.yaml index 49210b9b9..f6480dbf6 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_eventsubscriptions.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_eventsubscriptions.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: eventsubscriptions.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -84,6 +84,79 @@ spec: snsTopic: description: The SNS topic to send events to. type: string + snsTopicRef: + description: Reference to a Topic in sns to populate snsTopic. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + snsTopicSelector: + description: Selector for a Topic in sns to populate snsTopic. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object sourceIds: description: A list of identifiers of the event sources for which events will be returned. If not specified, then all sources @@ -113,21 +186,83 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + enabled: + description: A boolean flag to enable/disable the subscription. + Defaults to true. + type: boolean + eventCategories: + description: A list of event categories for a SourceType that + you want to subscribe to. See http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html + or run aws rds describe-event-categories. + items: + type: string + type: array + sourceIds: + description: A list of identifiers of the event sources for which + events will be returned. If not specified, then all sources + are included in the response. If specified, a source_type must + also be specified. + items: + type: string + type: array + sourceType: + description: The type of source that will be generating the events. + Valid options are db-instance, db-security-group, db-parameter-group, + db-snapshot, db-cluster or db-cluster-snapshot. If not set, + all sources will be subscribed to. + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -166,42 +301,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -300,10 +399,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: snsTopic is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.snsTopic) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: EventSubscriptionStatus defines the observed state of EventSubscription. properties: @@ -396,6 +494,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_globalclusters.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_globalclusters.yaml index 9883c4a30..058317739 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_globalclusters.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_globalclusters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: globalclusters.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -101,27 +101,155 @@ spec: description: Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. type: string + sourceDbClusterIdentifierRef: + description: Reference to a Cluster in rds to populate sourceDbClusterIdentifier. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + sourceDbClusterIdentifierSelector: + description: Selector for a Cluster in rds to populate sourceDbClusterIdentifier. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object storageEncrypted: description: Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. type: boolean type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + databaseName: + description: Name for an automatically created database on cluster + creation. + type: string + deletionProtection: + description: If the Global Cluster should have deletion protection + enabled. The database can't be deleted when this value is set + to true. The default is false. + type: boolean + engine: + description: 'Name of the database engine to be used for this + DB cluster. Valid values: aurora, aurora-mysql, aurora-postgresql. + Defaults to aurora. Conflicts with source_db_cluster_identifier.' + type: string + engineVersion: + description: 'Engine version of the Aurora global database. The + engine, engine_version, and instance_class (on the aws_rds_cluster_instance) + must together support global databases. See Using Amazon Aurora + global databases for more information. NOTE: To avoid an inconsistent + final plan error while upgrading, use the lifecycle ignore_changes + for engine_version meta argument on the associated aws_rds_cluster + resource as shown above in Upgrading Engine Versions example.' + type: string + forceDestroy: + description: Enable to remove DB Cluster members from Global Cluster + on destroy. Required with source_db_cluster_identifier. + type: boolean + storageEncrypted: + description: Specifies whether the DB cluster is encrypted. The + default is false unless source_db_cluster_identifier is specified + and encrypted. + type: boolean + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -160,42 +288,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -294,8 +386,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: GlobalClusterStatus defines the observed state of GlobalCluster. properties: @@ -396,6 +489,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_instanceroleassociations.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_instanceroleassociations.yaml index 67bf2de32..42e07a523 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_instanceroleassociations.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_instanceroleassociations.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: instanceroleassociations.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -57,7 +57,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -71,6 +71,79 @@ spec: description: DB Instance Identifier to associate with the IAM Role. type: string + dbInstanceIdentifierRef: + description: Reference to a Instance in rds to populate dbInstanceIdentifier. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + dbInstanceIdentifierSelector: + description: Selector for a Instance in rds to populate dbInstanceIdentifier. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object featureName: description: Name of the feature for association. This can be found in the AWS documentation relevant to the integration or @@ -85,22 +158,124 @@ spec: description: Amazon Resource Name (ARN) of the IAM Role to associate with the DB Instance. type: string + roleArnRef: + description: Reference to a Role in iam to populate roleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + roleArnSelector: + description: Selector for a Role in iam to populate roleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + featureName: + description: Name of the feature for association. This can be + found in the AWS documentation relevant to the integration or + a full list is available in the SupportedFeatureNames list returned + by AWS CLI rds describe-db-engine-versions. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -139,42 +314,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -273,14 +412,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: dbInstanceIdentifier is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.dbInstanceIdentifier) - - message: featureName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.featureName) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: roleArn is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.roleArn) + - message: spec.forProvider.featureName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.featureName) + || (has(self.initProvider) && has(self.initProvider.featureName))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: InstanceRoleAssociationStatus defines the observed state of InstanceRoleAssociation. @@ -339,6 +477,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_instances.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_instances.yaml index 38ed02773..bb0c1e198 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_instances.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_instances.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: instances.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -263,7 +263,7 @@ spec: description: The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match - the [DB Cluster](https://marketplace.upbound.io/providers/upbound/provider-aws/latest/resources/rds.aws.upbound.io/Cluster/v1beta1)'s + the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine'. For information on the difference between the available Aurora MySQL engines see Comparison in the [Amazon RDS Release Notes](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html). @@ -276,7 +276,7 @@ spec: supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must - match the [DB Cluster](https://marketplace.upbound.io/providers/upbound/provider-aws/latest/resources/rds.aws.upbound.io/Cluster/v1beta1)'s + match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine version'. type: string finalSnapshotIdentifier: @@ -397,6 +397,79 @@ spec: the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used. type: string + masterUserSecretKmsKeyIdRef: + description: Reference to a Key in kms to populate masterUserSecretKmsKeyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + masterUserSecretKmsKeyIdSelector: + description: Selector for a Key in kms to populate masterUserSecretKmsKeyId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object maxAllocatedStorage: description: When configured, the upper limit to which Amazon RDS can automatically scale the storage of the DB instance. @@ -416,6 +489,79 @@ spec: more information on the AWS Documentation what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. type: string + monitoringRoleArnRef: + description: Reference to a Role in iam to populate monitoringRoleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + monitoringRoleArnSelector: + description: Selector for a Role in iam to populate monitoringRoleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object multiAz: description: Specifies if the RDS instance is multi-AZ type: boolean @@ -501,6 +647,79 @@ spec: Instance Replication and Working with PostgreSQL and MySQL Read Replicas for more information on using Replication. type: string + replicateSourceDbRef: + description: Reference to a Instance in rds to populate replicateSourceDb. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + replicateSourceDbSelector: + description: Selector for a Instance in rds to populate replicateSourceDb. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object restoreToPointInTime: description: A configuration block for restoring a DB instance to an arbitrary point in time. Requires the identifier argument @@ -558,11 +777,6 @@ spec: description: Version of the source engine used to make the backup type: string - required: - - bucketName - - ingestionRole - - sourceEngine - - sourceEngineVersion type: object type: array skipFinalSnapshot: @@ -618,69 +832,464 @@ spec: description: Username for the master DB user. Cannot be specified for a replica. type: string + vpcSecurityGroupIdRefs: + description: References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which + will attempt to resolve the reference only when the + corresponding field is not present. Use 'Always' to + resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + vpcSecurityGroupIdSelector: + description: Selector for a list of SecurityGroup in ec2 to populate + vpcSecurityGroupIds. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object vpcSecurityGroupIds: description: List of VPC security groups to associate. items: type: string type: array type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string - providerConfigRef: - default: - name: default - description: ProviderConfigReference specifies how the provider that - will be used to create, observe, update, and delete this managed - resource should be configured. + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. properties: - name: - description: Name of the referenced object. + allocatedStorage: + description: The allocated storage in gibibytes. If max_allocated_storage + is configured, this argument represents the initial storage + allocation and differences from the configuration will be ignored + automatically when Storage Autoscaling occurs. If replicate_source_db + is set, the value is ignored during the creation of the instance. + type: number + allowMajorVersionUpgrade: + description: Indicates that major version upgrades are allowed. + Changing this parameter does not result in an outage and the + change is asynchronously applied as soon as possible. + type: boolean + applyImmediately: + description: Specifies whether any database modifications are + applied immediately, or during the next maintenance window. + Default is false. See Amazon RDS Documentation for more information. + type: boolean + autoMinorVersionUpgrade: + description: Indicates that minor engine upgrades will be applied + automatically to the DB instance during the maintenance window. + Defaults to true. + type: boolean + availabilityZone: + description: The AZ for the RDS instance. type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string + backupRetentionPeriod: + description: The days to retain backups for. Must be between 0 + and 35. Default is 0. Must be greater than 0 if the database + is used as a source for a Read Replica, uses low-downtime updates, + or will use RDS Blue/Green deployments. + type: number + backupWindow: + description: 'The daily time range (in UTC) during which automated + backups are created if they are enabled. Example: "09:46-10:16". + Must not overlap with maintenance_window.' + type: string + blueGreenUpdate: + description: Enables low-downtime updates using RDS Blue/Green + deployments. See blue_green_update below + items: + properties: + enabled: + description: Enables [low-downtime updates](#Low-Downtime + Updates) when true. Default is false. + type: boolean + type: object + type: array + caCertIdentifier: + description: The identifier of the CA certificate for the DB instance. + type: string + characterSetName: + description: The character set name to use for DB encoding in + Oracle and Microsoft SQL instances (collation). This can't be + changed. See Oracle Character Sets Supported in Amazon RDS or + Server-Level Collation for Microsoft SQL Server for more information. + type: string + copyTagsToSnapshot: + description: – Copy all Instance tags to snapshots. Default is + false. + type: boolean + customIamInstanceProfile: + description: The instance profile associated with the underlying + Amazon EC2 instance of an RDS Custom DB instance. + type: string + customerOwnedIpEnabled: + description: Indicates whether to enable a customer-owned IP address + (CoIP) for an RDS on Outposts DB instance. See CoIP for RDS + on Outposts for more information. + type: boolean + dbName: + description: The name of the database to create when the DB instance + is created. If this parameter is not specified, no database + is created in the DB instance. Note that this does not apply + for Oracle or SQL Server engines. See the AWS documentation + for more details on what applies for those engines. If you are + providing an Oracle db name, it needs to be in all upper case. + Cannot be specified for a replica. + type: string + deleteAutomatedBackups: + description: Specifies whether to remove automated backups immediately + after the DB instance is deleted. Default is true. + type: boolean + deletionProtection: + description: If the DB instance should have deletion protection + enabled. The database can't be deleted when this value is set + to true. The default is false. + type: boolean + domain: + description: The ID of the Directory Service Active Directory + domain to create the instance in. + type: string + domainIamRoleName: + description: The name of the IAM role to be used when making API + calls to the Directory Service. + type: string + enabledCloudwatchLogsExports: + description: 'Set of log types to enable for exporting to CloudWatch + logs. If omitted, no logs will be exported. Valid values (depending + on engine). MySQL and MariaDB: audit, error, general, slowquery. + PostgreSQL: postgresql, upgrade. MSSQL: agent , error. Oracle: + alert, audit, listener, trace.' + items: + type: string + type: array + engine: + description: The database engine to use. For supported values, + see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). + Note that for Amazon Aurora instances the engine must match + the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s + engine'. For information on the difference between the available + Aurora MySQL engines see Comparison in the [Amazon RDS Release + Notes](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html). + type: string + engineVersion: + description: The engine version to use. If `autoMinorVersionUpgrade` + is enabled, you can provide a prefix of the version such as + 5.7 (for 5.7.10). The actual engine version used is returned + in the attribute `status.atProvider.engineVersionActual`. For + supported values, see the EngineVersion parameter in [API action + CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). + Note that for Amazon Aurora instances the engine version must + match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s + engine version'. + type: string + finalSnapshotIdentifier: + description: The name of your final DB snapshot when this DB instance + is deleted. Must be provided if skip_final_snapshot is set to + false. The value must begin with a letter, only contain alphanumeric + characters and hyphens, and not end with a hyphen or contain + two consecutive hyphens. Must not be provided when deleting + a read replica. + type: string + iamDatabaseAuthenticationEnabled: + description: Specifies whether mappings of AWS Identity and Access + Management (IAM) accounts to database accounts is enabled. + type: boolean + instanceClass: + description: The instance type of the RDS instance. + type: string + iops: + description: The amount of provisioned IOPS. Setting this implies + a storage_type of "io1". Can only be set when storage_type is + "io1" or "gp3". Cannot be specified for gp3 storage if the allocated_storage + value is below a per-engine threshold. See the RDS User Guide + for details. + type: number + licenseModel: + description: License model information for this DB instance. + type: string + maintenanceWindow: + description: 'The window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". + Eg: "Mon:00:00-Mon:03:00". See RDS Maintenance Window docs for + more information.' + type: string + manageMasterUserPassword: + description: Set to true to allow RDS to manage the master user + password in Secrets Manager. Cannot be set if password is provided. + type: boolean + maxAllocatedStorage: + description: When configured, the upper limit to which Amazon + RDS can automatically scale the storage of the DB instance. + Configuring this will automatically ignore differences to allocated_storage. + Must be greater than or equal to allocated_storage or 0 to disable + Storage Autoscaling. + type: number + monitoringInterval: + description: 'The interval, in seconds, between points when Enhanced + Monitoring metrics are collected for the DB instance. To disable + collecting Enhanced Monitoring metrics, specify 0. The default + is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60.' + type: number + multiAz: + description: Specifies if the RDS instance is multi-AZ + type: boolean + ncharCharacterSetName: + description: The national character set is used in the NCHAR, + NVARCHAR2, and NCLOB data types for Oracle instances. This can't + be changed. See Oracle Character Sets Supported in Amazon RDS. + type: string + networkType: + description: 'The network type of the DB instance. Valid values: + IPV4, DUAL.' + type: string + optionGroupName: + description: Name of the DB option group to associate. + type: string + parameterGroupName: + description: Name of the DB parameter group to associate. + type: string + performanceInsightsEnabled: + description: Specifies whether Performance Insights are enabled. + Defaults to false. + type: boolean + performanceInsightsKmsKeyId: + description: The ARN for the KMS key to encrypt Performance Insights + data. When specifying performance_insights_kms_key_id, performance_insights_enabled + needs to be set to true. Once KMS key is set, it can never be + changed. + type: string + performanceInsightsRetentionPeriod: + description: Amount of time in days to retain Performance Insights + data. Valid values are 7, 731 (2 years) or a multiple of 31. + When specifying performance_insights_retention_period, performance_insights_enabled + needs to be set to true. Defaults to '7'. + type: number + port: + description: The port on which the DB accepts connections. + type: number + publiclyAccessible: + description: Bool to control if instance is publicly accessible. + Default is false. + type: boolean + replicaMode: + description: Specifies whether the replica is in either mounted + or open-read-only mode. This attribute is only supported by + Oracle instances. Oracle replicas operate in open-read-only + mode unless otherwise specified. See Working with Oracle Read + Replicas for more information. + type: string + restoreToPointInTime: + description: A configuration block for restoring a DB instance + to an arbitrary point in time. Requires the identifier argument + to be set with the name of the new DB instance to be created. + See Restore To Point In Time below for details. + items: + properties: + restoreTime: + description: The date and time to restore from. Value must + be a time in Universal Coordinated Time (UTC) format and + must be before the latest restorable time for the DB instance. + Cannot be specified with use_latest_restorable_time. + type: string + sourceDbInstanceAutomatedBackupsArn: + description: The ARN of the automated backup from which + to restore. Required if source_db_instance_identifier + or source_dbi_resource_id is not specified. + type: string + sourceDbInstanceIdentifier: + description: The identifier of the source DB instance from + which to restore. Must match the identifier of an existing + DB instance. Required if source_db_instance_automated_backups_arn + or source_dbi_resource_id is not specified. + type: string + sourceDbiResourceId: + description: The resource ID of the source DB instance from + which to restore. Required if source_db_instance_identifier + or source_db_instance_automated_backups_arn is not specified. + type: string + useLatestRestorableTime: + description: A boolean value that indicates whether the + DB instance is restored from the latest backup time. Defaults + to false. Cannot be specified with restore_time. + type: boolean + type: object + type: array + s3Import: + description: Restore from a Percona Xtrabackup in S3. See Importing + Data into an Amazon RDS MySQL DB Instance + items: + properties: + bucketName: + description: The bucket name where your backup is stored + type: string + bucketPrefix: + description: Can be blank, but is the path to your backup + type: string + ingestionRole: + description: Role applied to load the data. + type: string + sourceEngine: + description: Source engine for the backup + type: string + sourceEngineVersion: + description: Version of the source engine used to make the + backup + type: string + type: object + type: array + skipFinalSnapshot: + description: Determines whether a final DB snapshot is created + before the DB instance is deleted. If true is specified, no + DBSnapshot is created. If false is specified, a DB snapshot + is created before the DB instance is deleted, using the value + from final_snapshot_identifier. Default is false. + type: boolean + snapshotIdentifier: + description: 'Specifies whether or not to create this database + from a snapshot. This correlates to the snapshot ID you''d find + in the RDS console, e.g: rds:production-2015-06-26-06-05.' + type: string + storageEncrypted: + description: Specifies whether the DB instance is encrypted. Note + that if you are creating a cross-region read replica this field + is ignored and you should instead declare kms_key_id with a + valid ARN. The default is false if not specified. + type: boolean + storageThroughput: + description: The storage throughput value for the DB instance. + Can only be set when storage_type is "gp3". Cannot be specified + if the allocated_storage value is below a per-engine threshold. + See the RDS User Guide for details. + type: number + storageType: + description: One of "standard" (magnetic), "gp2" (general purpose + SSD), "gp3" (general purpose SSD that needs iops independently) + or "io1" (provisioned IOPS SSD). The default is "io1" if iops + is specified, "gp2" if not. + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. type: object - required: - - name + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + timezone: + description: Time zone of the DB instance. timezone is currently + only supported by Microsoft SQL Server. The timezone can only + be set on creation. See MSSQL User Guide for more information. + type: string + username: + description: Username for the master DB user. Cannot be specified + for a replica. + type: string type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. properties: name: description: Name of the referenced object. @@ -811,10 +1420,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: instanceClass is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.instanceClass) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.instanceClass is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.instanceClass) + || (has(self.initProvider) && has(self.initProvider.instanceClass))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: InstanceStatus defines the observed state of Instance. properties: @@ -947,7 +1559,7 @@ spec: description: The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match - the [DB Cluster](https://marketplace.upbound.io/providers/upbound/provider-aws/latest/resources/rds.aws.upbound.io/Cluster/v1beta1)'s + the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine'. For information on the difference between the available Aurora MySQL engines see Comparison in the [Amazon RDS Release Notes](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html). @@ -960,7 +1572,7 @@ spec: supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must - match the [DB Cluster](https://marketplace.upbound.io/providers/upbound/provider-aws/latest/resources/rds.aws.upbound.io/Cluster/v1beta1)'s + match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine version'. type: string engineVersionActual: @@ -1298,6 +1910,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_optiongroups.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_optiongroups.yaml index 57c34ccdc..0d659c30e 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_optiongroups.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_optiongroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: optiongroups.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -98,9 +98,6 @@ spec: value: description: The Value of the setting. type: string - required: - - name - - value type: object type: array port: @@ -116,8 +113,6 @@ spec: items: type: string type: array - required: - - optionName type: object type: array optionGroupDescription: @@ -142,21 +137,110 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + engineName: + description: Specifies the name of the engine that this option + group should be associated with. + type: string + majorEngineVersion: + description: Specifies the major version of the engine that this + option group should be associated with. + type: string + option: + description: A list of Options to apply. + items: + properties: + dbSecurityGroupMemberships: + description: A list of DB Security Groups for which the + option is enabled. + items: + type: string + type: array + optionName: + description: The Name of the Option (e.g., MEMCACHED). + type: string + optionSettings: + description: A list of option settings to apply. + items: + properties: + name: + description: The name of the option group. Must be + lowercase, to match as it is stored in AWS. + type: string + value: + description: The Value of the setting. + type: string + type: object + type: array + port: + description: The Port number when connecting to the Option + (e.g., 11211). + type: number + version: + description: The version of the option (e.g., 13.1.0.0). + type: string + vpcSecurityGroupMemberships: + description: A list of VPC Security Groups for which the + option is enabled. + items: + type: string + type: array + type: object + type: array + optionGroupDescription: + description: The description of the option group. + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -195,42 +279,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -329,12 +377,17 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: engineName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.engineName) - - message: majorEngineVersion is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.majorEngineVersion) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.engineName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.engineName) + || (has(self.initProvider) && has(self.initProvider.engineName))' + - message: spec.forProvider.majorEngineVersion is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.majorEngineVersion) + || (has(self.initProvider) && has(self.initProvider.majorEngineVersion))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: OptionGroupStatus defines the observed state of OptionGroup. properties: @@ -446,6 +499,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_parametergroups.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_parametergroups.yaml index f622db99b..b8826f2e9 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_parametergroups.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_parametergroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: parametergroups.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -90,9 +90,6 @@ spec: value: description: The value of the DB parameter. type: string - required: - - name - - value type: object type: array region: @@ -114,21 +111,84 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + description: + description: The description of the DB parameter group. + type: string + family: + description: The family of the DB parameter group. + type: string + parameter: + description: A list of DB parameters to apply. Note that parameters + may differ from a family to an other. Full list of all parameters + can be discovered via aws rds describe-db-parameters after initial + creation of the group. + items: + properties: + applyMethod: + description: '"immediate" (default), or "pending-reboot". + Some engines can''t apply some parameters without a reboot, + and you will need to specify "pending-reboot" here.' + type: string + name: + description: The name of the DB parameter group. + type: string + value: + description: The value of the DB parameter. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -167,42 +227,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -301,10 +325,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: family is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.family) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.family is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.family) + || (has(self.initProvider) && has(self.initProvider.family))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ParameterGroupStatus defines the observed state of ParameterGroup. properties: @@ -390,6 +417,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxies.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxies.yaml index c37ce47df..4dc23db60 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxies.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxies.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: proxies.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -97,6 +97,84 @@ spec: RDS DB instance or Aurora DB cluster. These secrets are stored within Amazon Secrets Manager. type: string + secretArnRef: + description: Reference to a Secret in secretsmanager to + populate secretArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is + 'Required', which means the reconcile will fail + if the reference cannot be resolved. 'Optional' + means this reference will be a no-op if it cannot + be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference + should be resolved. The default is 'IfNotPresent', + which will attempt to resolve the reference only + when the corresponding field is not present. Use + 'Always' to resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + secretArnSelector: + description: Selector for a Secret in secretsmanager to + populate secretArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with + the same controller reference as the selecting object + is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching + labels is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is + 'Required', which means the reconcile will fail + if the reference cannot be resolved. 'Optional' + means this reference will be a no-op if it cannot + be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference + should be resolved. The default is 'IfNotPresent', + which will attempt to resolve the reference only + when the corresponding field is not present. Use + 'Always' to resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object username: description: The name of the database user to which the proxy connects. @@ -140,6 +218,79 @@ spec: description: The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager. type: string + roleArnRef: + description: Reference to a Role in iam to populate roleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + roleArnSelector: + description: Selector for a Role in iam to populate roleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object tags: additionalProperties: type: string @@ -154,6 +305,83 @@ spec: those inherited from the provider default_tags configuration block. type: object + vpcSecurityGroupIdRefs: + description: References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which + will attempt to resolve the reference only when the + corresponding field is not present. Use 'Always' to + resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + vpcSecurityGroupIdSelector: + description: Selector for a list of SecurityGroup in ec2 to populate + vpcSecurityGroupIds. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object vpcSecurityGroupIds: description: One or more VPC security group IDs to associate with the new proxy. @@ -167,21 +395,124 @@ spec: type: string type: array type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + auth: + description: Configuration block(s) with authorization mechanisms + to connect to the associated instances or clusters. Described + below. + items: + properties: + authScheme: + description: The type of authentication that the proxy uses + for connections from the proxy to the underlying database. + One of SECRETS. + type: string + clientPasswordAuthType: + description: The type of authentication the proxy uses for + connections from clients. Valid values are MYSQL_NATIVE_PASSWORD, + POSTGRES_SCRAM_SHA_256, POSTGRES_MD5, and SQL_SERVER_AUTHENTICATION. + type: string + description: + description: A user-specified description about the authentication + used by a proxy to log in as a specific database user. + type: string + iamAuth: + description: Whether to require or disallow AWS Identity + and Access Management (IAM) authentication for connections + to the proxy. One of DISABLED, REQUIRED. + type: string + username: + description: The name of the database user to which the + proxy connects. + type: string + type: object + type: array + debugLogging: + description: Whether the proxy includes detailed information about + SQL statements in its logs. This information helps you to debug + issues involving SQL behavior or the performance and scalability + of the proxy connections. The debug information includes the + text of SQL statements that you submit through the proxy. Thus, + only enable this setting when needed for debugging, and only + when you have security measures in place to safeguard any sensitive + information that appears in the logs. + type: boolean + engineFamily: + description: The kinds of databases that the proxy can connect + to. This value determines which database network protocol the + proxy recognizes when it interprets network traffic to and from + the database. The engine family applies to MySQL and PostgreSQL + for both RDS and Aurora. Valid values are MYSQL and POSTGRESQL. + type: string + idleClientTimeout: + description: The number of seconds that a connection to the proxy + can be inactive before the proxy disconnects it. You can set + this value higher or lower than the connection timeout limit + for the associated database. + type: number + requireTls: + description: A Boolean parameter that specifies whether Transport + Layer Security (TLS) encryption is required for connections + to the proxy. By enabling this setting, you can enforce encrypted + TLS connections to the proxy. + type: boolean + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + vpcSubnetIds: + description: One or more VPC subnet IDs to associate with the + new proxy. + items: + type: string + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -220,42 +551,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -354,16 +649,21 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: auth is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.auth) - - message: engineFamily is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.engineFamily) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: roleArn is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.roleArn) - - message: vpcSubnetIds is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.vpcSubnetIds) + - message: spec.forProvider.auth is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.auth) + || (has(self.initProvider) && has(self.initProvider.auth))' + - message: spec.forProvider.engineFamily is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.engineFamily) + || (has(self.initProvider) && has(self.initProvider.engineFamily))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + - message: spec.forProvider.vpcSubnetIds is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcSubnetIds) + || (has(self.initProvider) && has(self.initProvider.vpcSubnetIds))' status: description: ProxyStatus defines the observed state of Proxy. properties: @@ -510,6 +810,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxydefaulttargetgroups.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxydefaulttargetgroups.yaml index 2392da533..cc4e42371 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxydefaulttargetgroups.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxydefaulttargetgroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: proxydefaulttargetgroups.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -57,7 +57,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -122,26 +122,174 @@ spec: dbProxyName: description: Name of the RDS DB Proxy. type: string + dbProxyNameRef: + description: Reference to a Proxy in rds to populate dbProxyName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + dbProxyNameSelector: + description: Selector for a Proxy in rds to populate dbProxyName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object region: description: Region is the region you'd like your resource to be created in. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + connectionPoolConfig: + description: The settings that determine the size and behavior + of the connection pool for the target group. + items: + properties: + connectionBorrowTimeout: + description: The number of seconds for a proxy to wait for + a connection to become available in the connection pool. + Only applies when the proxy has opened its maximum number + of connections and all connections are busy with client + sessions. + type: number + initQuery: + description: One or more SQL statements for the proxy to + run when opening each new database connection. Typically + used with SET statements to make sure that each connection + has identical settings such as time zone and character + set. This setting is empty by default. For multiple statements, + use semicolons as the separator. You can also include + multiple variables in a single SET statement, such as + SET x=1, y=2. + type: string + maxConnectionsPercent: + description: The maximum size of the connection pool for + each target in a target group. For Aurora MySQL, it is + expressed as a percentage of the max_connections setting + for the RDS DB instance or Aurora DB cluster used by the + target group. + type: number + maxIdleConnectionsPercent: + description: Controls how actively the proxy closes idle + database connections in the connection pool. A high value + enables the proxy to leave a high percentage of idle connections + open. A low value causes the proxy to close idle client + connections and return the underlying database connections + to the connection pool. For Aurora MySQL, it is expressed + as a percentage of the max_connections setting for the + RDS DB instance or Aurora DB cluster used by the target + group. + type: number + sessionPinningFilters: + description: Each item in the list represents a class of + SQL operations that normally cause all later statements + in a session using a proxy to be pinned to the same underlying + database connection. Including an item in the list exempts + that class of SQL operations from the pinning behavior. + Currently, the only allowed value is EXCLUDE_VARIABLE_SETS. + items: + type: string + type: array + type: object + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -180,42 +328,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -314,10 +426,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: dbProxyName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.dbProxyName) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: ProxyDefaultTargetGroupStatus defines the observed state of ProxyDefaultTargetGroup. @@ -423,6 +534,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxyendpoints.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxyendpoints.yaml index ac050e6dd..7216c1a98 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxyendpoints.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxyendpoints.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: proxyendpoints.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,6 +70,79 @@ spec: description: The name of the DB proxy associated with the DB proxy endpoint that you create. type: string + dbProxyNameRef: + description: Reference to a Proxy in rds to populate dbProxyName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + dbProxyNameSelector: + description: Selector for a Proxy in rds to populate dbProxyName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object region: description: Region is the region you'd like your resource to be created in. @@ -88,6 +161,83 @@ spec: for read/write or read-only operations. The default is READ_WRITE. Valid values are READ_WRITE and READ_ONLY. type: string + vpcSecurityGroupIdRefs: + description: References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which + will attempt to resolve the reference only when the + corresponding field is not present. Use 'Always' to + resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + vpcSecurityGroupIdSelector: + description: Selector for a list of SecurityGroup in ec2 to populate + vpcSecurityGroupIds. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object vpcSecurityGroupIds: description: One or more VPC security group IDs to associate with the new proxy. @@ -100,24 +250,65 @@ spec: items: type: string type: array - required: - - dbProxyName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + tagsAll: + additionalProperties: + type: string + type: object + targetRole: + description: Indicates whether the DB proxy endpoint can be used + for read/write or read-only operations. The default is READ_WRITE. + Valid values are READ_WRITE and READ_ONLY. + type: string + vpcSubnetIds: + description: One or more VPC subnet IDs to associate with the + new proxy. + items: + type: string + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -156,42 +347,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -290,10 +445,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: vpcSubnetIds is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.vpcSubnetIds) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + - message: spec.forProvider.vpcSubnetIds is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcSubnetIds) + || (has(self.initProvider) && has(self.initProvider.vpcSubnetIds))' status: description: ProxyEndpointStatus defines the observed state of ProxyEndpoint. properties: @@ -382,6 +540,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxytargets.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxytargets.yaml index 122355d70..f768473fa 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxytargets.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_proxytargets.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: proxytargets.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -72,9 +72,155 @@ spec: dbInstanceIdentifier: description: DB instance identifier. type: string + dbInstanceIdentifierRef: + description: Reference to a Instance in rds to populate dbInstanceIdentifier. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + dbInstanceIdentifierSelector: + description: Selector for a Instance in rds to populate dbInstanceIdentifier. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object dbProxyName: description: The name of the DB proxy. type: string + dbProxyNameRef: + description: Reference to a Proxy in rds to populate dbProxyName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + dbProxyNameSelector: + description: Selector for a Proxy in rds to populate dbProxyName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object region: description: Region is the region you'd like your resource to be created in. @@ -83,21 +229,50 @@ spec: description: The name of the target group. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + dbClusterIdentifier: + description: DB cluster identifier. + type: string + targetGroupName: + description: The name of the target group. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -136,42 +311,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -270,12 +409,13 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: dbProxyName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.dbProxyName) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: targetGroupName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.targetGroupName) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + - message: spec.forProvider.targetGroupName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.targetGroupName) + || (has(self.initProvider) && has(self.initProvider.targetGroupName))' status: description: ProxyTargetStatus defines the observed state of ProxyTarget. properties: @@ -356,6 +496,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_snapshots.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_snapshots.yaml index 52884d7be..8050c0742 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_snapshots.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_snapshots.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: snapshots.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,6 +70,79 @@ spec: description: The DB Instance Identifier from which to take the snapshot. type: string + dbInstanceIdentifierRef: + description: Reference to a Instance in rds to populate dbInstanceIdentifier. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + dbInstanceIdentifierSelector: + description: Selector for a Instance in rds to populate dbInstanceIdentifier. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object region: description: Region is the region you'd like your resource to be created in. @@ -95,21 +168,64 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + sharedAccounts: + description: List of AWS Account ids to share snapshot with, use + all to make snaphot public. + items: + type: string + type: array + tags: + additionalProperties: + type: string + description: Key-value map of resource tags. If configured with + a provider default_tags configuration block present, tags with + matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -148,42 +264,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -282,10 +362,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: dbInstanceIdentifier is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.dbInstanceIdentifier) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: SnapshotStatus defines the observed state of Snapshot. properties: @@ -406,6 +485,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_subnetgroups.yaml b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_subnetgroups.yaml index e98614dcc..82cb8a031 100644 --- a/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_subnetgroups.yaml +++ b/charts/kubedb-provider-aws/crds/rds.aws.kubedb.com_subnetgroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: subnetgroups.rds.aws.kubedb.com spec: group: rds.aws.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -73,6 +73,83 @@ spec: description: Region is the region you'd like your resource to be created in. type: string + subnetIdRefs: + description: References to Subnet in ec2 to populate subnetIds. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which + will attempt to resolve the reference only when the + corresponding field is not present. Use 'Always' to + resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + subnetIdSelector: + description: Selector for a list of Subnet in ec2 to populate + subnetIds. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object subnetIds: description: A list of VPC subnet IDs. items: @@ -93,21 +170,61 @@ spec: block. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + description: + description: The description of the DB subnet group. + type: string + tags: + additionalProperties: + type: string + description: A map of tags to assign to the resource. If configured + with a provider default_tags configuration block present, tags + with matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -146,42 +263,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -280,10 +361,9 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: subnetIds is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.subnetIds) + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' status: description: SubnetGroupStatus defines the observed state of SubnetGroup. properties: @@ -359,6 +439,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-aws/crds/secretsmanager.aws.kubedb.com_secrets.yaml b/charts/kubedb-provider-aws/crds/secretsmanager.aws.kubedb.com_secrets.yaml new file mode 100644 index 000000000..aa4fb7759 --- /dev/null +++ b/charts/kubedb-provider-aws/crds/secretsmanager.aws.kubedb.com_secrets.yaml @@ -0,0 +1,579 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: secrets.secretsmanager.aws.kubedb.com +spec: + group: secretsmanager.aws.kubedb.com + names: + categories: + - crossplane + - managed + - aws + kind: Secret + listKind: SecretList + plural: secrets + singular: secret + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: Secret is the Schema for the Secrets API. Provides a resource + to manage AWS Secrets Manager secret metadata + 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: SecretSpec defines the desired state of Secret + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + description: + description: Description of the secret. + type: string + forceOverwriteReplicaSecret: + description: Accepts boolean value to specify whether to overwrite + a secret with the same name in the destination Region. + type: boolean + kmsKeyId: + description: ARN or Id of the AWS KMS key to be used to encrypt + the secret values in the versions stored in this secret. If + you need to reference a CMK in a different account, you can + use only the key ARN. If you don't specify this value, then + Secrets Manager defaults to using the AWS account's default + KMS key (the one named aws/secretsmanager). If the default KMS + key with that name doesn't yet exist, then AWS Secrets Manager + creates it for you automatically the first time. + type: string + kmsKeyIdRef: + description: Reference to a Key in kms to populate kmsKeyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + kmsKeyIdSelector: + description: Selector for a Key in kms to populate kmsKeyId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + name: + description: 'Friendly name of the new secret. The secret name + can consist of uppercase letters, lowercase letters, digits, + and any of the following characters: /_+=.@- Conflicts with + name_prefix.' + type: string + namePrefix: + description: Creates a unique name beginning with the specified + prefix. Conflicts with name. + type: string + recoveryWindowInDays: + description: Number of days that AWS Secrets Manager waits before + it can delete the secret. This value can be 0 to force deletion + without recovery or range from 7 to 30 days. The default value + is 30. + type: number + region: + description: Region for replicating the secret. Region is the + region you'd like your resource to be created in. + type: string + replica: + description: Configuration block to support secret replication. + See details below. + items: + properties: + kmsKeyId: + description: ARN, Key ID, or Alias of the AWS KMS key within + the region secret is replicated to. If one is not specified, + then Secrets Manager defaults to using the AWS account's + default KMS key (aws/secretsmanager) in the region or + creates one for use if non-existent. + type: string + region: + description: Region for replicating the secret. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: Key-value map of user-defined tags that are attached + to the secret. If configured with a provider default_tags configuration + block present, tags with matching keys will overwrite those + defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: Map of tags assigned to the resource, including those + inherited from the provider default_tags configuration block. + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + description: + description: Description of the secret. + type: string + forceOverwriteReplicaSecret: + description: Accepts boolean value to specify whether to overwrite + a secret with the same name in the destination Region. + type: boolean + name: + description: 'Friendly name of the new secret. The secret name + can consist of uppercase letters, lowercase letters, digits, + and any of the following characters: /_+=.@- Conflicts with + name_prefix.' + type: string + namePrefix: + description: Creates a unique name beginning with the specified + prefix. Conflicts with name. + type: string + recoveryWindowInDays: + description: Number of days that AWS Secrets Manager waits before + it can delete the secret. This value can be 0 to force deletion + without recovery or range from 7 to 30 days. The default value + is 30. + type: number + replica: + description: Configuration block to support secret replication. + See details below. + items: + properties: + kmsKeyId: + description: ARN, Key ID, or Alias of the AWS KMS key within + the region secret is replicated to. If one is not specified, + then Secrets Manager defaults to using the AWS account's + default KMS key (aws/secretsmanager) in the region or + creates one for use if non-existent. + type: string + region: + description: Region for replicating the secret. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: Key-value map of user-defined tags that are attached + to the secret. If configured with a provider default_tags configuration + block present, tags with matching keys will overwrite those + defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: Map of tags assigned to the resource, including those + inherited from the provider default_tags configuration block. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + status: + description: SecretStatus defines the observed state of Secret. + properties: + atProvider: + properties: + arn: + description: ARN of the secret. + type: string + description: + description: Description of the secret. + type: string + forceOverwriteReplicaSecret: + description: Accepts boolean value to specify whether to overwrite + a secret with the same name in the destination Region. + type: boolean + id: + description: ARN of the secret. + type: string + kmsKeyId: + description: ARN or Id of the AWS KMS key to be used to encrypt + the secret values in the versions stored in this secret. If + you need to reference a CMK in a different account, you can + use only the key ARN. If you don't specify this value, then + Secrets Manager defaults to using the AWS account's default + KMS key (the one named aws/secretsmanager). If the default KMS + key with that name doesn't yet exist, then AWS Secrets Manager + creates it for you automatically the first time. + type: string + name: + description: 'Friendly name of the new secret. The secret name + can consist of uppercase letters, lowercase letters, digits, + and any of the following characters: /_+=.@- Conflicts with + name_prefix.' + type: string + namePrefix: + description: Creates a unique name beginning with the specified + prefix. Conflicts with name. + type: string + policy: + description: Valid JSON document representing a resource policy. + Removing policy from your configuration or setting policy to + null or an empty string (i.e., policy = "") will not delete + the policy since it could have been set by aws_secretsmanager_secret_policy. + To delete the policy, set it to "{}" (an empty JSON document). + type: string + recoveryWindowInDays: + description: Number of days that AWS Secrets Manager waits before + it can delete the secret. This value can be 0 to force deletion + without recovery or range from 7 to 30 days. The default value + is 30. + type: number + replica: + description: Configuration block to support secret replication. + See details below. + items: + properties: + kmsKeyId: + description: ARN, Key ID, or Alias of the AWS KMS key within + the region secret is replicated to. If one is not specified, + then Secrets Manager defaults to using the AWS account's + default KMS key (aws/secretsmanager) in the region or + creates one for use if non-existent. + type: string + lastAccessedDate: + description: Date that you last accessed the secret in the + Region. + type: string + region: + description: Region for replicating the secret. + type: string + status: + description: Status can be InProgress, Failed, or InSync. + type: string + statusMessage: + description: Message such as Replication succeeded or Secret + with this name already exists in this region. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: Key-value map of user-defined tags that are attached + to the secret. If configured with a provider default_tags configuration + block present, tags with matching keys will overwrite those + defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: Map of tags assigned to the resource, including those + inherited from the provider default_tags configuration block. + type: object + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-aws/crds/sns.aws.kubedb.com_topics.yaml b/charts/kubedb-provider-aws/crds/sns.aws.kubedb.com_topics.yaml new file mode 100644 index 000000000..b1e6d542a --- /dev/null +++ b/charts/kubedb-provider-aws/crds/sns.aws.kubedb.com_topics.yaml @@ -0,0 +1,1296 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: topics.sns.aws.kubedb.com +spec: + group: sns.aws.kubedb.com + names: + categories: + - crossplane + - managed + - aws + kind: Topic + listKind: TopicList + plural: topics + singular: topic + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: Topic is the Schema for the Topics API. Provides an SNS topic + resource. + 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: TopicSpec defines the desired state of Topic + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + applicationFailureFeedbackRoleArn: + description: IAM role for failure feedback + type: string + applicationFailureFeedbackRoleArnRef: + description: Reference to a Role in iam to populate applicationFailureFeedbackRoleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + applicationFailureFeedbackRoleArnSelector: + description: Selector for a Role in iam to populate applicationFailureFeedbackRoleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + applicationSuccessFeedbackRoleArn: + description: The IAM role permitted to receive success feedback + for this topic + type: string + applicationSuccessFeedbackRoleArnRef: + description: Reference to a Role in iam to populate applicationSuccessFeedbackRoleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + applicationSuccessFeedbackRoleArnSelector: + description: Selector for a Role in iam to populate applicationSuccessFeedbackRoleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + applicationSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + contentBasedDeduplication: + description: Enables content-based deduplication for FIFO topics. + For more information, see the related documentation + type: boolean + deliveryPolicy: + description: The SNS delivery policy. More on AWS documentation + type: string + displayName: + description: The display name for the topic + type: string + fifoTopic: + description: Boolean indicating whether or not to create a FIFO + (first-in-first-out) topic (default is false). + type: boolean + firehoseFailureFeedbackRoleArn: + description: IAM role for failure feedback + type: string + firehoseFailureFeedbackRoleArnRef: + description: Reference to a Role in iam to populate firehoseFailureFeedbackRoleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + firehoseFailureFeedbackRoleArnSelector: + description: Selector for a Role in iam to populate firehoseFailureFeedbackRoleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + firehoseSuccessFeedbackRoleArn: + description: The IAM role permitted to receive success feedback + for this topic + type: string + firehoseSuccessFeedbackRoleArnRef: + description: Reference to a Role in iam to populate firehoseSuccessFeedbackRoleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + firehoseSuccessFeedbackRoleArnSelector: + description: Selector for a Role in iam to populate firehoseSuccessFeedbackRoleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + firehoseSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + httpFailureFeedbackRoleArn: + description: IAM role for failure feedback + type: string + httpFailureFeedbackRoleArnRef: + description: Reference to a Role in iam to populate httpFailureFeedbackRoleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + httpFailureFeedbackRoleArnSelector: + description: Selector for a Role in iam to populate httpFailureFeedbackRoleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + httpSuccessFeedbackRoleArn: + description: The IAM role permitted to receive success feedback + for this topic + type: string + httpSuccessFeedbackRoleArnRef: + description: Reference to a Role in iam to populate httpSuccessFeedbackRoleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + httpSuccessFeedbackRoleArnSelector: + description: Selector for a Role in iam to populate httpSuccessFeedbackRoleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + httpSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + kmsMasterKeyId: + description: The ID of an AWS-managed customer master key (CMK) + for Amazon SNS or a custom CMK. For more information, see Key + Terms + type: string + lambdaFailureFeedbackRoleArn: + description: IAM role for failure feedback + type: string + lambdaFailureFeedbackRoleArnRef: + description: Reference to a Role in iam to populate lambdaFailureFeedbackRoleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + lambdaFailureFeedbackRoleArnSelector: + description: Selector for a Role in iam to populate lambdaFailureFeedbackRoleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + lambdaSuccessFeedbackRoleArn: + description: The IAM role permitted to receive success feedback + for this topic + type: string + lambdaSuccessFeedbackRoleArnRef: + description: Reference to a Role in iam to populate lambdaSuccessFeedbackRoleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + lambdaSuccessFeedbackRoleArnSelector: + description: Selector for a Role in iam to populate lambdaSuccessFeedbackRoleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + lambdaSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + policy: + description: The fully-formed AWS policy as JSON. + type: string + region: + description: Region is the region you'd like your resource to + be created in. + type: string + signatureVersion: + description: If SignatureVersion should be 1 (SHA1) or 2 (SHA256). + The signature version corresponds to the hashing algorithm used + while creating the signature of the notifications, subscription + confirmations, or unsubscribe confirmation messages sent by + Amazon SNS. + type: number + sqsFailureFeedbackRoleArn: + description: IAM role for failure feedback + type: string + sqsFailureFeedbackRoleArnRef: + description: Reference to a Role in iam to populate sqsFailureFeedbackRoleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + sqsFailureFeedbackRoleArnSelector: + description: Selector for a Role in iam to populate sqsFailureFeedbackRoleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + sqsSuccessFeedbackRoleArn: + description: The IAM role permitted to receive success feedback + for this topic + type: string + sqsSuccessFeedbackRoleArnRef: + description: Reference to a Role in iam to populate sqsSuccessFeedbackRoleArn. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + sqsSuccessFeedbackRoleArnSelector: + description: Selector for a Role in iam to populate sqsSuccessFeedbackRoleArn. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + sqsSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + tags: + additionalProperties: + type: string + description: Key-value map of resource tags. If configured with + a provider default_tags configuration block present, tags with + matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + tracingConfig: + description: 'Tracing mode of an Amazon SNS topic. Valid values: + "PassThrough", "Active".' + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + applicationSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + contentBasedDeduplication: + description: Enables content-based deduplication for FIFO topics. + For more information, see the related documentation + type: boolean + deliveryPolicy: + description: The SNS delivery policy. More on AWS documentation + type: string + displayName: + description: The display name for the topic + type: string + fifoTopic: + description: Boolean indicating whether or not to create a FIFO + (first-in-first-out) topic (default is false). + type: boolean + firehoseSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + httpSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + kmsMasterKeyId: + description: The ID of an AWS-managed customer master key (CMK) + for Amazon SNS or a custom CMK. For more information, see Key + Terms + type: string + lambdaSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + policy: + description: The fully-formed AWS policy as JSON. + type: string + signatureVersion: + description: If SignatureVersion should be 1 (SHA1) or 2 (SHA256). + The signature version corresponds to the hashing algorithm used + while creating the signature of the notifications, subscription + confirmations, or unsubscribe confirmation messages sent by + Amazon SNS. + type: number + sqsSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + tags: + additionalProperties: + type: string + description: Key-value map of resource tags. If configured with + a provider default_tags configuration block present, tags with + matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + tracingConfig: + description: 'Tracing mode of an Amazon SNS topic. Valid values: + "PassThrough", "Active".' + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region)' + status: + description: TopicStatus defines the observed state of Topic. + properties: + atProvider: + properties: + applicationFailureFeedbackRoleArn: + description: IAM role for failure feedback + type: string + applicationSuccessFeedbackRoleArn: + description: The IAM role permitted to receive success feedback + for this topic + type: string + applicationSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + arn: + description: The ARN of the SNS topic, as a more obvious property + (clone of id) + type: string + contentBasedDeduplication: + description: Enables content-based deduplication for FIFO topics. + For more information, see the related documentation + type: boolean + deliveryPolicy: + description: The SNS delivery policy. More on AWS documentation + type: string + displayName: + description: The display name for the topic + type: string + fifoTopic: + description: Boolean indicating whether or not to create a FIFO + (first-in-first-out) topic (default is false). + type: boolean + firehoseFailureFeedbackRoleArn: + description: IAM role for failure feedback + type: string + firehoseSuccessFeedbackRoleArn: + description: The IAM role permitted to receive success feedback + for this topic + type: string + firehoseSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + httpFailureFeedbackRoleArn: + description: IAM role for failure feedback + type: string + httpSuccessFeedbackRoleArn: + description: The IAM role permitted to receive success feedback + for this topic + type: string + httpSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + id: + description: The ARN of the SNS topic + type: string + kmsMasterKeyId: + description: The ID of an AWS-managed customer master key (CMK) + for Amazon SNS or a custom CMK. For more information, see Key + Terms + type: string + lambdaFailureFeedbackRoleArn: + description: IAM role for failure feedback + type: string + lambdaSuccessFeedbackRoleArn: + description: The IAM role permitted to receive success feedback + for this topic + type: string + lambdaSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + owner: + description: The AWS Account ID of the SNS topic owner + type: string + policy: + description: The fully-formed AWS policy as JSON. + type: string + signatureVersion: + description: If SignatureVersion should be 1 (SHA1) or 2 (SHA256). + The signature version corresponds to the hashing algorithm used + while creating the signature of the notifications, subscription + confirmations, or unsubscribe confirmation messages sent by + Amazon SNS. + type: number + sqsFailureFeedbackRoleArn: + description: IAM role for failure feedback + type: string + sqsSuccessFeedbackRoleArn: + description: The IAM role permitted to receive success feedback + for this topic + type: string + sqsSuccessFeedbackSampleRate: + description: Percentage of success to sample + type: number + tags: + additionalProperties: + type: string + description: Key-value map of resource tags. If configured with + a provider default_tags configuration block present, tags with + matching keys will overwrite those defined at the provider-level. + type: object + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + tracingConfig: + description: 'Tracing mode of an Amazon SNS topic. Valid values: + "PassThrough", "Active".' + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/Chart.yaml b/charts/kubedb-provider-azure/Chart.yaml index af37cef46..eca4afb30 100755 --- a/charts/kubedb-provider-azure/Chart.yaml +++ b/charts/kubedb-provider-azure/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: kubedb-provider-azure description: A Helm chart for KubeDB Azure Provider for Crossplane type: application -version: v0.0.1 -appVersion: v0.0.1 +version: v2023.12.11 +appVersion: v0.0.2 home: https://github.com/kubedb/provider-azure icon: https://cdn.appscode.com/images/products/searchlight/icons/android-icon-192x192.png sources: diff --git a/charts/kubedb-provider-azure/README.md b/charts/kubedb-provider-azure/README.md index caa533eea..617b523d8 100644 --- a/charts/kubedb-provider-azure/README.md +++ b/charts/kubedb-provider-azure/README.md @@ -7,8 +7,8 @@ ```bash $ helm repo add appscode https://charts.appscode.com/stable/ $ helm repo update -$ helm search repo appscode/kubedb-provider-azure --version=v0.0.1 -$ helm upgrade -i kubedb-provider-azure appscode/kubedb-provider-azure -n crossplane-system --create-namespace --version=v0.0.1 +$ helm search repo appscode/kubedb-provider-azure --version=v2023.12.11 +$ helm upgrade -i kubedb-provider-azure appscode/kubedb-provider-azure -n crossplane-system --create-namespace --version=v2023.12.11 ``` ## Introduction @@ -24,7 +24,7 @@ This chart deploys a KubeDB Azure provider on a [Kubernetes](http://kubernetes.i To install/upgrade the chart with the release name `kubedb-provider-azure`: ```bash -$ helm upgrade -i kubedb-provider-azure appscode/kubedb-provider-azure -n crossplane-system --create-namespace --version=v0.0.1 +$ helm upgrade -i kubedb-provider-azure appscode/kubedb-provider-azure -n crossplane-system --create-namespace --version=v2023.12.11 ``` The command deploys a KubeDB Azure provider on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. @@ -74,12 +74,12 @@ The following table lists the configurable parameters of the `kubedb-provider-az Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example: ```bash -$ helm upgrade -i kubedb-provider-azure appscode/kubedb-provider-azure -n crossplane-system --create-namespace --version=v0.0.1 --set replicaCount=1 +$ helm upgrade -i kubedb-provider-azure appscode/kubedb-provider-azure -n crossplane-system --create-namespace --version=v2023.12.11 --set replicaCount=1 ``` Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example: ```bash -$ helm upgrade -i kubedb-provider-azure appscode/kubedb-provider-azure -n crossplane-system --create-namespace --version=v0.0.1 --values values.yaml +$ helm upgrade -i kubedb-provider-azure appscode/kubedb-provider-azure -n crossplane-system --create-namespace --version=v2023.12.11 --values values.yaml ``` diff --git a/charts/kubedb-provider-azure/crds/authorization.azure.kubedb.com_roleassignments.yaml b/charts/kubedb-provider-azure/crds/authorization.azure.kubedb.com_roleassignments.yaml new file mode 100644 index 000000000..70b1f5245 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/authorization.azure.kubedb.com_roleassignments.yaml @@ -0,0 +1,461 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: roleassignments.authorization.azure.kubedb.com +spec: + group: authorization.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: RoleAssignment + listKind: RoleAssignmentList + plural: roleassignments + singular: roleassignment + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: RoleAssignment is the Schema for the RoleAssignments API. Assigns + a given Principal (User or Group) to a given Role. + 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: RoleAssignmentSpec defines the desired state of RoleAssignment + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + condition: + description: The condition that limits the resources that the + role can be assigned to. Changing this forces a new resource + to be created. + type: string + conditionVersion: + description: The version of the condition. Possible values are + 1.0 or 2.0. Changing this forces a new resource to be created. + type: string + delegatedManagedIdentityResourceId: + description: The delegated Azure Resource Id which contains a + Managed Identity. Changing this forces a new resource to be + created. + type: string + description: + description: The description for this Role Assignment. Changing + this forces a new resource to be created. + type: string + name: + description: A unique UUID/GUID for this Role Assignment - one + will be generated if not specified. Changing this forces a new + resource to be created. + type: string + principalId: + description: The ID of the Principal (User, Group or Service Principal) + to assign the Role Definition to. Changing this forces a new + resource to be created. + type: string + roleDefinitionId: + description: The Scoped-ID of the Role Definition. Changing this + forces a new resource to be created. Conflicts with role_definition_name. + type: string + roleDefinitionName: + description: The name of a built-in Role. Changing this forces + a new resource to be created. Conflicts with role_definition_id. + type: string + scope: + description: The scope at which the Role Assignment applies to, + such as /subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333, + /subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup, + or /subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM, + or /providers/Microsoft.Management/managementGroups/myMG. Changing + this forces a new resource to be created. + type: string + skipServicePrincipalAadCheck: + description: If the principal_id is a newly provisioned Service + Principal set this value to true to skip the Azure Active Directory + check which may fail due to replication lag. This argument is + only valid if the principal_id is a Service Principal identity. + Defaults to false. + type: boolean + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + condition: + description: The condition that limits the resources that the + role can be assigned to. Changing this forces a new resource + to be created. + type: string + conditionVersion: + description: The version of the condition. Possible values are + 1.0 or 2.0. Changing this forces a new resource to be created. + type: string + delegatedManagedIdentityResourceId: + description: The delegated Azure Resource Id which contains a + Managed Identity. Changing this forces a new resource to be + created. + type: string + description: + description: The description for this Role Assignment. Changing + this forces a new resource to be created. + type: string + name: + description: A unique UUID/GUID for this Role Assignment - one + will be generated if not specified. Changing this forces a new + resource to be created. + type: string + principalId: + description: The ID of the Principal (User, Group or Service Principal) + to assign the Role Definition to. Changing this forces a new + resource to be created. + type: string + roleDefinitionId: + description: The Scoped-ID of the Role Definition. Changing this + forces a new resource to be created. Conflicts with role_definition_name. + type: string + roleDefinitionName: + description: The name of a built-in Role. Changing this forces + a new resource to be created. Conflicts with role_definition_id. + type: string + scope: + description: The scope at which the Role Assignment applies to, + such as /subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333, + /subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup, + or /subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM, + or /providers/Microsoft.Management/managementGroups/myMG. Changing + this forces a new resource to be created. + type: string + skipServicePrincipalAadCheck: + description: If the principal_id is a newly provisioned Service + Principal set this value to true to skip the Azure Active Directory + check which may fail due to replication lag. This argument is + only valid if the principal_id is a Service Principal identity. + Defaults to false. + type: boolean + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.principalId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.principalId) + || (has(self.initProvider) && has(self.initProvider.principalId))' + - message: spec.forProvider.scope is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.scope) + || (has(self.initProvider) && has(self.initProvider.scope))' + status: + description: RoleAssignmentStatus defines the observed state of RoleAssignment. + properties: + atProvider: + properties: + condition: + description: The condition that limits the resources that the + role can be assigned to. Changing this forces a new resource + to be created. + type: string + conditionVersion: + description: The version of the condition. Possible values are + 1.0 or 2.0. Changing this forces a new resource to be created. + type: string + delegatedManagedIdentityResourceId: + description: The delegated Azure Resource Id which contains a + Managed Identity. Changing this forces a new resource to be + created. + type: string + description: + description: The description for this Role Assignment. Changing + this forces a new resource to be created. + type: string + id: + description: The Role Assignment ID. + type: string + name: + description: A unique UUID/GUID for this Role Assignment - one + will be generated if not specified. Changing this forces a new + resource to be created. + type: string + principalId: + description: The ID of the Principal (User, Group or Service Principal) + to assign the Role Definition to. Changing this forces a new + resource to be created. + type: string + principalType: + description: The type of the principal_id, e.g. User, Group, Service + Principal, Application, etc. + type: string + roleDefinitionId: + description: The Scoped-ID of the Role Definition. Changing this + forces a new resource to be created. Conflicts with role_definition_name. + type: string + roleDefinitionName: + description: The name of a built-in Role. Changing this forces + a new resource to be created. Conflicts with role_definition_id. + type: string + scope: + description: The scope at which the Role Assignment applies to, + such as /subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333, + /subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup, + or /subscriptions/0b1f6471-1bf0-4dda-aec3-111122223333/resourceGroups/myGroup/providers/Microsoft.Compute/virtualMachines/myVM, + or /providers/Microsoft.Management/managementGroups/myMG. Changing + this forces a new resource to be created. + type: string + skipServicePrincipalAadCheck: + description: If the principal_id is a newly provisioned Service + Principal set this value to true to skip the Azure Active Directory + check which may fail due to replication lag. This argument is + only valid if the principal_id is a Service Principal identity. + Defaults to false. + type: boolean + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/azure.kubedb.com_providerconfigs.yaml b/charts/kubedb-provider-azure/crds/azure.kubedb.com_providerconfigs.yaml index 80593168f..c1a947117 100644 --- a/charts/kubedb-provider-azure/crds/azure.kubedb.com_providerconfigs.yaml +++ b/charts/kubedb-provider-azure/crds/azure.kubedb.com_providerconfigs.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: providerconfigs.azure.kubedb.com spec: group: azure.kubedb.com @@ -137,6 +137,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map users: description: Users of this provider configuration. format: int64 diff --git a/charts/kubedb-provider-azure/crds/azure.kubedb.com_providerconfigusages.yaml b/charts/kubedb-provider-azure/crds/azure.kubedb.com_providerconfigusages.yaml index 3205fd032..6fdcfc544 100644 --- a/charts/kubedb-provider-azure/crds/azure.kubedb.com_providerconfigusages.yaml +++ b/charts/kubedb-provider-azure/crds/azure.kubedb.com_providerconfigusages.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: providerconfigusages.azure.kubedb.com spec: group: azure.kubedb.com diff --git a/charts/kubedb-provider-azure/crds/azure.kubedb.com_providerregistrations.yaml b/charts/kubedb-provider-azure/crds/azure.kubedb.com_providerregistrations.yaml new file mode 100644 index 000000000..fabb973e5 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/azure.kubedb.com_providerregistrations.yaml @@ -0,0 +1,348 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: providerregistrations.azure.kubedb.com +spec: + group: azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: ProviderRegistration + listKind: ProviderRegistrationList + plural: providerregistrations + singular: providerregistration + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: ProviderRegistration is the Schema for the ProviderRegistrations + API. Manages the Registration of a Resource Provider. + 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: ProviderRegistrationSpec defines the desired state of ProviderRegistration + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + feature: + description: A list of feature blocks as defined below. + items: + properties: + name: + description: Specifies the name of the feature to register. + type: string + registered: + description: Should this feature be Registered or Unregistered? + type: boolean + type: object + type: array + name: + description: The namespace of the Resource Provider which should + be registered. Changing this forces a new resource to be created. + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + feature: + description: A list of feature blocks as defined below. + items: + properties: + name: + description: Specifies the name of the feature to register. + type: string + registered: + description: Should this feature be Registered or Unregistered? + type: boolean + type: object + type: array + name: + description: The namespace of the Resource Provider which should + be registered. Changing this forces a new resource to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: ProviderRegistrationStatus defines the observed state of + ProviderRegistration. + properties: + atProvider: + properties: + feature: + description: A list of feature blocks as defined below. + items: + properties: + name: + description: Specifies the name of the feature to register. + type: string + registered: + description: Should this feature be Registered or Unregistered? + type: boolean + type: object + type: array + id: + type: string + name: + description: The namespace of the Resource Provider which should + be registered. Changing this forces a new resource to be created. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/azure.kubedb.com_resourcegroups.yaml b/charts/kubedb-provider-azure/crds/azure.kubedb.com_resourcegroups.yaml new file mode 100644 index 000000000..40211142b --- /dev/null +++ b/charts/kubedb-provider-azure/crds/azure.kubedb.com_resourcegroups.yaml @@ -0,0 +1,330 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: resourcegroups.azure.kubedb.com +spec: + group: azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: ResourceGroup + listKind: ResourceGroupList + plural: resourcegroups + singular: resourcegroup + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: ResourceGroup is the Schema for the ResourceGroups API. Manages + a Resource Group. + 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: ResourceGroupSpec defines the desired state of ResourceGroup + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + location: + description: The Azure Region where the Resource Group should + exist. Changing this forces a new Resource Group to be created. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags which should be assigned to the + Resource Group. + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + location: + description: The Azure Region where the Resource Group should + exist. Changing this forces a new Resource Group to be created. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags which should be assigned to the + Resource Group. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + status: + description: ResourceGroupStatus defines the observed state of ResourceGroup. + properties: + atProvider: + properties: + id: + description: The ID of the Resource Group. + type: string + location: + description: The Azure Region where the Resource Group should + exist. Changing this forces a new Resource Group to be created. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags which should be assigned to the + Resource Group. + type: object + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/azure.kubedb.com_storeconfigs.yaml b/charts/kubedb-provider-azure/crds/azure.kubedb.com_storeconfigs.yaml index 20e38e464..be0c16bd8 100644 --- a/charts/kubedb-provider-azure/crds/azure.kubedb.com_storeconfigs.yaml +++ b/charts/kubedb-provider-azure/crds/azure.kubedb.com_storeconfigs.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: storeconfigs.azure.kubedb.com spec: group: azure.kubedb.com @@ -152,146 +152,6 @@ spec: - Vault - Plugin type: string - vault: - description: 'Vault configures a Vault secret store. Deprecated: This - API is scheduled to be removed in a future release. Vault should - be used as a plugin going forward. See https://github.com/crossplane-contrib/ess-plugin-vault - for more information.' - properties: - auth: - description: Auth configures an authentication method for Vault. - properties: - method: - description: Method configures which auth method will be used. - type: string - token: - description: Token configures Token Auth for Vault. - properties: - env: - description: Env is a reference to an environment variable - that contains credentials that must be used to connect - to the provider. - properties: - name: - description: Name is the name of an environment variable. - type: string - required: - - name - type: object - fs: - description: Fs is a reference to a filesystem location - that contains credentials that must be used to connect - to the provider. - properties: - path: - description: Path is a filesystem path. - type: string - required: - - path - type: object - secretRef: - description: A SecretRef is a reference to a secret key - that contains the credentials that must be used to connect - to the provider. - properties: - key: - description: The key to select. - type: string - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - key - - name - - namespace - type: object - source: - description: Source of the credentials. - enum: - - None - - Secret - - Environment - - Filesystem - type: string - required: - - source - type: object - required: - - method - type: object - caBundle: - description: CABundle configures CA bundle for Vault Server. - properties: - env: - description: Env is a reference to an environment variable - that contains credentials that must be used to connect to - the provider. - properties: - name: - description: Name is the name of an environment variable. - type: string - required: - - name - type: object - fs: - description: Fs is a reference to a filesystem location that - contains credentials that must be used to connect to the - provider. - properties: - path: - description: Path is a filesystem path. - type: string - required: - - path - type: object - secretRef: - description: A SecretRef is a reference to a secret key that - contains the credentials that must be used to connect to - the provider. - properties: - key: - description: The key to select. - type: string - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - key - - name - - namespace - type: object - source: - description: Source of the credentials. - enum: - - None - - Secret - - Environment - - Filesystem - type: string - required: - - source - type: object - mountPath: - description: MountPath is the mount path of the KV secrets engine. - type: string - server: - description: Server is the url of the Vault server, e.g. "https://vault.acme.org" - type: string - version: - default: v2 - description: Version of the KV Secrets engine of Vault. https://www.vaultproject.io/docs/secrets/kv - type: string - required: - - auth - - mountPath - - server - type: object required: - defaultScope type: object @@ -331,6 +191,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/azure.kubedb.com_subscriptions.yaml b/charts/kubedb-provider-azure/crds/azure.kubedb.com_subscriptions.yaml new file mode 100644 index 000000000..06b427e91 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/azure.kubedb.com_subscriptions.yaml @@ -0,0 +1,376 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: subscriptions.azure.kubedb.com +spec: + group: azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: Subscription + listKind: SubscriptionList + plural: subscriptions + singular: subscription + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: Subscription is the Schema for the Subscriptions API. Manages + a Subscription. + 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: SubscriptionSpec defines the desired state of Subscription + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + billingScopeId: + description: The Azure Billing Scope ID. Can be a Microsoft Customer + Account Billing Scope ID, a Microsoft Partner Account Billing + Scope ID or an Enrollment Billing Scope ID. + type: string + subscriptionId: + description: The ID of the Subscription. Changing this forces + a new Subscription to be created. The GUID of the Subscription. + type: string + subscriptionName: + description: The Name of the Subscription. This is the Display + Name in the portal. The Display Name for the Subscription. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the Subscription. + type: object + workload: + description: The workload type of the Subscription. Possible values + are Production (default) and DevTest. Changing this forces a + new Subscription to be created. The workload type for the Subscription. + Possible values are `Production` (default) and `DevTest`. + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + billingScopeId: + description: The Azure Billing Scope ID. Can be a Microsoft Customer + Account Billing Scope ID, a Microsoft Partner Account Billing + Scope ID or an Enrollment Billing Scope ID. + type: string + subscriptionId: + description: The ID of the Subscription. Changing this forces + a new Subscription to be created. The GUID of the Subscription. + type: string + subscriptionName: + description: The Name of the Subscription. This is the Display + Name in the portal. The Display Name for the Subscription. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the Subscription. + type: object + workload: + description: The workload type of the Subscription. Possible values + are Production (default) and DevTest. Changing this forces a + new Subscription to be created. The workload type for the Subscription. + Possible values are `Production` (default) and `DevTest`. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.subscriptionName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.subscriptionName) + || (has(self.initProvider) && has(self.initProvider.subscriptionName))' + status: + description: SubscriptionStatus defines the observed state of Subscription. + properties: + atProvider: + properties: + billingScopeId: + description: The Azure Billing Scope ID. Can be a Microsoft Customer + Account Billing Scope ID, a Microsoft Partner Account Billing + Scope ID or an Enrollment Billing Scope ID. + type: string + id: + description: The Resource ID of the Alias. + type: string + subscriptionId: + description: The ID of the Subscription. Changing this forces + a new Subscription to be created. The GUID of the Subscription. + type: string + subscriptionName: + description: The Name of the Subscription. This is the Display + Name in the portal. The Display Name for the Subscription. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the Subscription. + type: object + tenantId: + description: The ID of the Tenant to which the subscription belongs. + The Tenant ID to which the subscription belongs + type: string + workload: + description: The workload type of the Subscription. Possible values + are Production (default) and DevTest. Changing this forces a + new Subscription to be created. The workload type for the Subscription. + Possible values are `Production` (default) and `DevTest`. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_rediscaches.yaml b/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_rediscaches.yaml index 2235fd859..38aa0b69e 100644 --- a/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_rediscaches.yaml +++ b/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_rediscaches.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: rediscaches.cache.azure.kubedb.com spec: group: cache.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -94,8 +94,6 @@ spec: values are SystemAssigned, UserAssigned, SystemAssigned, UserAssigned (to enable both). type: string - required: - - type type: object type: array location: @@ -122,8 +120,6 @@ spec: description: the Start Hour for maintenance in UTC - possible values range from 0 - 23. type: number - required: - - dayOfWeek type: object type: array privateStaticIpAddress: @@ -259,6 +255,81 @@ spec: the Redis instance. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object shardCount: description: Only available when using the Premium SKU The number of Shards to create on the Redis Cluster. @@ -274,6 +345,79 @@ spec: without any other type of resources. Changing this forces a new resource to be created. type: string + subnetIdRef: + description: Reference to a Subnet in network to populate subnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + subnetIdSelector: + description: Selector for a Subnet in network to populate subnetId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object tags: additionalProperties: type: string @@ -291,24 +435,200 @@ spec: items: type: string type: array - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + capacity: + description: The size of the Redis cache to deploy. Valid values + for a SKU family of C (Basic/Standard) are 0, 1, 2, 3, 4, 5, + 6, and for P (Premium) family are 1, 2, 3, 4, 5. + type: number + enableNonSslPort: + description: Enable the non-SSL port (6379) - disabled by default. + type: boolean + family: + description: The SKU family/pricing group to use. Valid values + are C (for Basic/Standard SKU family) and P (for Premium) + type: string + identity: + description: An identity block as defined below. + items: + properties: + identityIds: + description: A list of User Assigned Managed Identity IDs + to be assigned to this Redis Cluster. + items: + type: string + type: array + type: + description: Specifies the type of Managed Service Identity + that should be configured on this Redis Cluster. Possible + values are SystemAssigned, UserAssigned, SystemAssigned, + UserAssigned (to enable both). + type: string + type: object + type: array + location: + description: The location of the resource group. Changing this + forces a new resource to be created. + type: string + minimumTlsVersion: + description: The minimum TLS version. Possible values are 1.0, + 1.1 and 1.2. Defaults to 1.0. + type: string + patchSchedule: + description: A list of patch_schedule blocks as defined below. + items: + properties: + dayOfWeek: + description: the Weekday name - possible values include + Monday, Tuesday, Wednesday etc. + type: string + maintenanceWindow: + description: The ISO 8601 timespan which specifies the amount + of time the Redis Cache can be updated. Defaults to PT5H. + type: string + startHourUtc: + description: the Start Hour for maintenance in UTC - possible + values range from 0 - 23. + type: number + type: object + type: array + privateStaticIpAddress: + description: The Static IP Address to assign to the Redis Cache + when hosted inside the Virtual Network. This argument implies + the use of subnet_id. Changing this forces a new resource to + be created. + type: string + publicNetworkAccessEnabled: + description: Whether or not public network access is allowed for + this Redis Cache. true means this resource could be accessed + by both public and private endpoint. false means only private + endpoint access is allowed. Defaults to true. + type: boolean + redisConfiguration: + description: A redis_configuration as defined below - with some + limitations by SKU - defaults/details are shown below. + items: + properties: + aofBackupEnabled: + description: Enable or disable AOF persistence for this + Redis Cache. Defaults to false. + type: boolean + enableAuthentication: + description: If set to false, the Redis instance will be + accessible without authentication. Defaults to true. + type: boolean + maxfragmentationmemoryReserved: + description: Value in megabytes reserved to accommodate + for memory fragmentation. Defaults are shown below. + type: number + maxmemoryDelta: + description: The max-memory delta for this Redis instance. + Defaults are shown below. + type: number + maxmemoryPolicy: + description: How Redis will select what to remove when maxmemory + is reached. Defaults are shown below. Defaults to volatile-lru. + type: string + maxmemoryReserved: + description: Value in megabytes reserved for non-cache usage + e.g. failover. Defaults are shown below. + type: number + notifyKeyspaceEvents: + description: Keyspace notifications allows clients to subscribe + to Pub/Sub channels in order to receive events affecting + the Redis data set in some way. Reference + type: string + rdbBackupEnabled: + description: Is Backup Enabled? Only supported on Premium + SKUs. Defaults to false. + type: boolean + rdbBackupFrequency: + description: 'The Backup Frequency in Minutes. Only supported + on Premium SKUs. Possible values are: 15, 30, 60, 360, + 720 and 1440.' + type: number + rdbBackupMaxSnapshotCount: + description: The maximum number of snapshots to create as + a backup. Only supported for Premium SKUs. + type: number + type: object + type: array + redisVersion: + description: 'Redis version. Only major version needed. Valid + values: 4, 6.' + type: string + replicasPerMaster: + description: Amount of replicas to create per master for this + Redis Cache. + type: number + replicasPerPrimary: + description: Amount of replicas to create per primary for this + Redis Cache. If both replicas_per_primary and replicas_per_master + are set, they need to be equal. + type: number + shardCount: + description: Only available when using the Premium SKU The number + of Shards to create on the Redis Cluster. + type: number + skuName: + description: The SKU of Redis to use. Possible values are Basic, + Standard and Premium. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + tenantSettings: + additionalProperties: + type: string + description: A mapping of tenant settings to assign to the resource. + type: object + zones: + description: Specifies a list of Availability Zones in which this + Redis Cache should be located. Changing this forces a new Redis + Cache to be created. + items: + type: string + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -347,42 +667,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -481,16 +765,26 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: capacity is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.capacity) - - message: family is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.family) - - message: location is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.location) - - message: redisVersion is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.redisVersion) - - message: skuName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.skuName) + - message: spec.forProvider.capacity is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.capacity) + || (has(self.initProvider) && has(self.initProvider.capacity))' + - message: spec.forProvider.family is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.family) + || (has(self.initProvider) && has(self.initProvider.family))' + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + - message: spec.forProvider.redisVersion is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.redisVersion) + || (has(self.initProvider) && has(self.initProvider.redisVersion))' + - message: spec.forProvider.skuName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.skuName) + || (has(self.initProvider) && has(self.initProvider.skuName))' status: description: RedisCacheStatus defines the observed state of RedisCache. properties: @@ -719,6 +1013,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redisenterpriseclusters.yaml b/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redisenterpriseclusters.yaml index 47cae1b89..78f753e68 100644 --- a/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redisenterpriseclusters.yaml +++ b/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redisenterpriseclusters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: redisenterpriseclusters.cache.azure.kubedb.com spec: group: cache.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -81,6 +81,81 @@ spec: Cluster should exist. Changing this forces a new Redis Enterprise Cluster to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object skuName: description: The sku_name is comprised of two segments separated by a hyphen (e.g. Enterprise_E10-2). The first segment of the @@ -105,24 +180,79 @@ spec: items: type: string type: array - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + location: + description: The Azure Region where the Redis Enterprise Cluster + should exist. Changing this forces a new Redis Enterprise Cluster + to be created. + type: string + minimumTlsVersion: + description: The minimum TLS version. Possible values are 1.0, + 1.1 and 1.2. Defaults to 1.2. Changing this forces a new Redis + Enterprise Cluster to be created. + type: string + skuName: + description: The sku_name is comprised of two segments separated + by a hyphen (e.g. Enterprise_E10-2). The first segment of the + sku_name defines the name of the SKU, possible values are Enterprise_E10, + Enterprise_E20", Enterprise_E50, Enterprise_E100, EnterpriseFlash_F300, + EnterpriseFlash_F700 or EnterpriseFlash_F1500. The second segment + defines the capacity of the sku_name, possible values for Enteprise + SKUs are (2, 4, 6, ...). Possible values for EnterpriseFlash + SKUs are (3, 9, 15, ...). Changing this forces a new Redis Enterprise + Cluster to be created. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags which should be assigned to the + Redis Enterprise Cluster. + type: object + zones: + description: Specifies a list of Availability Zones in which this + Redis Enterprise Cluster should be located. Changing this forces + a new Redis Enterprise Cluster to be created. + items: + type: string + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -161,42 +291,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -295,10 +389,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: location is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.location) - - message: skuName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.skuName) + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + - message: spec.forProvider.skuName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.skuName) + || (has(self.initProvider) && has(self.initProvider.skuName))' status: description: RedisEnterpriseClusterStatus defines the observed state of RedisEnterpriseCluster. @@ -384,6 +482,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redisenterprisedatabases.yaml b/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redisenterprisedatabases.yaml index ad8bc17ef..a665d02cc 100644 --- a/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redisenterprisedatabases.yaml +++ b/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redisenterprisedatabases.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: redisenterprisedatabases.cache.azure.kubedb.com spec: group: cache.azure.kubedb.com @@ -57,7 +57,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -78,6 +78,81 @@ spec: deploy this Redis Enterprise Database. Changing this forces a new Redis Enterprise Database to be created. type: string + clusterIdRef: + description: Reference to a RedisEnterpriseCluster in cache to + populate clusterId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + clusterIdSelector: + description: Selector for a RedisEnterpriseCluster in cache to + populate clusterId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object clusteringPolicy: description: Clustering policy - default is OSSCluster. Specified at create time. Possible values are EnterpriseCluster and OSSCluster. @@ -116,8 +191,6 @@ spec: and RedisJSON. Changing this forces a new Redis Enterprise Database to be created. type: string - required: - - name type: object type: array port: @@ -130,24 +203,171 @@ spec: Database should exist. Changing this forces a new Redis Enterprise Database to be created. type: string - required: - - clusterId + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + clientProtocol: + description: Specifies whether redis clients can connect using + TLS-encrypted or plaintext redis protocols. Default is TLS-encrypted. + Possible values are Encrypted and Plaintext. Defaults to Encrypted. + Changing this forces a new Redis Enterprise Database to be created. + type: string + clusteringPolicy: + description: Clustering policy - default is OSSCluster. Specified + at create time. Possible values are EnterpriseCluster and OSSCluster. + Defaults to OSSCluster. Changing this forces a new Redis Enterprise + Database to be created. + type: string + evictionPolicy: + description: Redis eviction policy - default is VolatileLRU. Possible + values are AllKeysLFU, AllKeysLRU, AllKeysRandom, VolatileLRU, + VolatileLFU, VolatileTTL, VolatileRandom and NoEviction. Changing + this forces a new Redis Enterprise Database to be created. + type: string + linkedDatabaseGroupNickname: + description: Nickname of the group of linked databases. Changing + this force a new Redis Enterprise Geo Database to be created. + type: string + linkedDatabaseId: + description: A list of database resources to link with this database + with a maximum of 5. + items: + type: string + type: array + module: + description: A module block as defined below. Changing this forces + a new resource to be created. + items: + properties: + args: + description: Configuration options for the module (e.g. + ERROR_RATE 0.00 INITIAL_SIZE 400). Changing this forces + a new resource to be created. Defaults to "". + type: string + name: + description: The name which should be used for this module. + Possible values are RedisBloom, RedisTimeSeries, RediSearch + and RedisJSON. Changing this forces a new Redis Enterprise + Database to be created. + type: string + type: object + type: array + port: + description: TCP port of the database endpoint. Specified at create + time. Defaults to an available port. Changing this forces a + new Redis Enterprise Database to be created. Defaults to 10000. + type: number + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -186,42 +406,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -425,6 +609,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redisfirewallrules.yaml b/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redisfirewallrules.yaml index 77ca3d362..c92f28bc6 100644 --- a/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redisfirewallrules.yaml +++ b/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redisfirewallrules.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: redisfirewallrules.cache.azure.kubedb.com spec: group: cache.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -73,32 +73,206 @@ spec: description: The name of the Redis Cache. Changing this forces a new resource to be created. type: string + redisCacheNameRef: + description: Reference to a RedisCache in cache to populate redisCacheName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + redisCacheNameSelector: + description: Selector for a RedisCache in cache to populate redisCacheName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object resourceGroupName: description: The name of the resource group in which this Redis Cache exists. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + startIp: + description: The lowest IP address included in the range + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + endIp: + description: The highest IP address included in the range. + type: string startIp: description: The lowest IP address included in the range type: string - required: - - redisCacheName - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -137,42 +311,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -271,10 +409,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: endIp is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.endIp) - - message: startIp is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.startIp) + - message: spec.forProvider.endIp is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.endIp) + || (has(self.initProvider) && has(self.initProvider.endIp))' + - message: spec.forProvider.startIp is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.startIp) + || (has(self.initProvider) && has(self.initProvider.startIp))' status: description: RedisFirewallRuleStatus defines the observed state of RedisFirewallRule. properties: @@ -331,6 +473,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redislinkedservers.yaml b/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redislinkedservers.yaml index 4adb5fb6e..545737b52 100644 --- a/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redislinkedservers.yaml +++ b/charts/kubedb-provider-azure/crds/cache.azure.kubedb.com_redislinkedservers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: redislinkedservers.cache.azure.kubedb.com spec: group: cache.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -151,6 +151,81 @@ spec: description: The name of the Resource Group where the Redis caches exists. Changing this forces a new Redis to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverRole: description: The role of the linked Redis cache (eg "Secondary"). Changing this forces a new Redis to be created. Possible values @@ -233,24 +308,54 @@ spec: type: string type: object type: object - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + linkedRedisCacheLocation: + description: The location of the linked Redis cache. Changing + this forces a new Redis to be created. + type: string + serverRole: + description: The role of the linked Redis cache (eg "Secondary"). + Changing this forces a new Redis to be created. Possible values + are Primary and Secondary. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -289,42 +394,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -423,10 +492,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: linkedRedisCacheLocation is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.linkedRedisCacheLocation) - - message: serverRole is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.serverRole) + - message: spec.forProvider.linkedRedisCacheLocation is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.linkedRedisCacheLocation) + || (has(self.initProvider) && has(self.initProvider.linkedRedisCacheLocation))' + - message: spec.forProvider.serverRole is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.serverRole) + || (has(self.initProvider) && has(self.initProvider.serverRole))' status: description: RedisLinkedServerStatus defines the observed state of RedisLinkedServer. properties: @@ -493,6 +566,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_accounts.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_accounts.yaml index 1c48873c4..6d8506019 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_accounts.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_accounts.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: accounts.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -80,8 +80,6 @@ spec: this Cosmos DB account. Possible values are FullFidelity and WellDefined. type: string - required: - - schemaType type: object type: array analyticalStorageEnabled: @@ -115,8 +113,6 @@ spec: is one-way, changing Continuous to Periodic forces a new resource to be created. type: string - required: - - type type: object type: array capabilities: @@ -134,8 +130,6 @@ spec: EnableServerless, EnableTable, EnableTtlOnCustomPath, EnableUniqueCompoundNestedDocs, MongoDBv3.4 and mongoEnableDocLevelTTL. type: string - required: - - name type: object type: array capacity: @@ -147,8 +141,6 @@ spec: Cosmos DB account (RU/s). Possible values are at least -1. -1 means no limit. type: number - required: - - totalThroughputLimit type: object type: array consistencyPolicy: @@ -175,8 +167,6 @@ spec: Defaults to 100. Required when consistency_level is set to BoundedStaleness. type: number - required: - - consistencyLevel type: object type: array corsRule: @@ -212,12 +202,6 @@ spec: description: The number of seconds the client should cache a preflight response. type: number - required: - - allowedHeaders - - allowedMethods - - allowedOrigins - - exposedHeaders - - maxAgeInSeconds type: object type: array createMode: @@ -266,9 +250,6 @@ spec: description: Should zone redundancy be enabled for this region? Defaults to false. type: boolean - required: - - failoverPriority - - location type: object type: array identity: @@ -286,8 +267,6 @@ spec: Cosmos account. Possible values are SystemAssigned, UserAssigned and SystemAssigned, UserAssigned. type: string - required: - - type type: object type: array ipRangeFilter: @@ -346,6 +325,81 @@ spec: Account is created. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object restore: description: A restore block as defined below. items: @@ -366,8 +420,6 @@ spec: description: Specifies the name of the CosmosDB Account. Changing this forces a new resource to be created. type: string - required: - - name type: object type: array restoreTimestampInUtc: @@ -381,9 +433,82 @@ spec: example is /subscriptions/{subscriptionId}/providers/Microsoft.DocumentDB/locations/{location}/restorableDatabaseAccounts/{restorableDatabaseAccountName}. Changing this forces a new resource to be created. type: string - required: - - restoreTimestampInUtc - - sourceCosmosdbAccountId + sourceCosmosdbAccountIdRef: + description: Reference to a Account to populate sourceCosmosdbAccountId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is + 'Required', which means the reconcile will fail + if the reference cannot be resolved. 'Optional' + means this reference will be a no-op if it cannot + be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference + should be resolved. The default is 'IfNotPresent', + which will attempt to resolve the reference only + when the corresponding field is not present. Use + 'Always' to resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + sourceCosmosdbAccountIdSelector: + description: Selector for a Account to populate sourceCosmosdbAccountId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with + the same controller reference as the selecting object + is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching + labels is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is + 'Required', which means the reconcile will fail + if the reference cannot be resolved. 'Optional' + means this reference will be a no-op if it cannot + be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference + should be resolved. The default is 'IfNotPresent', + which will attempt to resolve the reference only + when the corresponding field is not present. Use + 'Always' to resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object type: array tags: @@ -405,28 +530,351 @@ spec: added as a virtual network rule even if its CosmosDB service endpoint is not active. Defaults to false. type: boolean - required: - - id type: object type: array - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + accessKeyMetadataWritesEnabled: + description: Is write operations on metadata resources (databases, + containers, throughput) via account keys enabled? Defaults to + true. + type: boolean + analyticalStorage: + description: An analytical_storage block as defined below. + items: + properties: + schemaType: + description: The schema type of the Analytical Storage for + this Cosmos DB account. Possible values are FullFidelity + and WellDefined. + type: string + type: object + type: array + analyticalStorageEnabled: + description: Enable Analytical Storage option for this Cosmos + DB account. Defaults to false. Enabling and then disabling analytical + storage forces a new resource to be created. + type: boolean + backup: + description: A backup block as defined below. + items: + properties: + intervalInMinutes: + description: The interval in minutes between two backups. + This is configurable only when type is Periodic. Possible + values are between 60 and 1440. + type: number + retentionInHours: + description: The time in hours that each backup is retained. + This is configurable only when type is Periodic. Possible + values are between 8 and 720. + type: number + storageRedundancy: + description: The storage redundancy is used to indicate + the type of backup residency. This is configurable only + when type is Periodic. Possible values are Geo, Local + and Zone. + type: string + type: + description: The type of the backup. Possible values are + Continuous and Periodic. Migration of Periodic to Continuous + is one-way, changing Continuous to Periodic forces a new + resource to be created. + type: string + type: object + type: array + capabilities: + description: The capabilities which should be enabled for this + Cosmos DB account. Value is a capabilities block as defined + below. + items: + properties: + name: + description: The capability to enable - Possible values + are AllowSelfServeUpgradeToMongo36, DisableRateLimitingResponses, + EnableAggregationPipeline, EnableCassandra, EnableGremlin, + EnableMongo, EnableMongo16MBDocumentSupport, EnableMongoRetryableWrites, + EnableMongoRoleBasedAccessControl, EnablePartialUniqueIndex, + EnableServerless, EnableTable, EnableTtlOnCustomPath, + EnableUniqueCompoundNestedDocs, MongoDBv3.4 and mongoEnableDocLevelTTL. + type: string + type: object + type: array + capacity: + description: A capacity block as defined below. + items: + properties: + totalThroughputLimit: + description: The total throughput limit imposed on this + Cosmos DB account (RU/s). Possible values are at least + -1. -1 means no limit. + type: number + type: object + type: array + consistencyPolicy: + description: Specifies a consistency_policy resource, used to + define the consistency policy for this CosmosDB account. + items: + properties: + consistencyLevel: + description: The Consistency Level to use for this CosmosDB + Account - can be either BoundedStaleness, Eventual, Session, + Strong or ConsistentPrefix. + type: string + maxIntervalInSeconds: + description: When used with the Bounded Staleness consistency + level, this value represents the time amount of staleness + (in seconds) tolerated. The accepted range for this value + is 5 - 86400 (1 day). Defaults to 5. Required when consistency_level + is set to BoundedStaleness. + type: number + maxStalenessPrefix: + description: When used with the Bounded Staleness consistency + level, this value represents the number of stale requests + tolerated. The accepted range for this value is 10 – 2147483647. + Defaults to 100. Required when consistency_level is set + to BoundedStaleness. + type: number + type: object + type: array + corsRule: + description: A cors_rule block as defined below. + items: + properties: + allowedHeaders: + description: A list of headers that are allowed to be a + part of the cross-origin request. + items: + type: string + type: array + allowedMethods: + description: A list of HTTP headers that are allowed to + be executed by the origin. Valid options are DELETE, GET, + HEAD, MERGE, POST, OPTIONS, PUT or PATCH. + items: + type: string + type: array + allowedOrigins: + description: A list of origin domains that will be allowed + by CORS. + items: + type: string + type: array + exposedHeaders: + description: A list of response headers that are exposed + to CORS clients. + items: + type: string + type: array + maxAgeInSeconds: + description: The number of seconds the client should cache + a preflight response. + type: number + type: object + type: array + createMode: + description: The creation mode for the CosmosDB Account. Possible + values are Default and Restore. Changing this forces a new resource + to be created. + type: string + defaultIdentityType: + description: The default identity for accessing Key Vault. Possible + values are FirstPartyIdentity, SystemAssignedIdentity or UserAssignedIdentity. + Defaults to FirstPartyIdentity. + type: string + enableAutomaticFailover: + description: Enable automatic failover for this Cosmos DB account. + type: boolean + enableFreeTier: + description: Enable the Free Tier pricing option for this Cosmos + DB account. Defaults to false. Changing this forces a new resource + to be created. + type: boolean + enableMultipleWriteLocations: + description: Enable multiple write locations for this Cosmos DB + account. + type: boolean + geoLocation: + description: Specifies a geo_location resource, used to define + where data should be replicated with the failover_priority 0 + specifying the primary location. Value is a geo_location block + as defined below. + items: + properties: + failoverPriority: + description: The failover priority of the region. A failover + priority of 0 indicates a write region. The maximum value + for a failover priority = (total number of regions - 1). + Failover priority values must be unique for each of the + regions in which the database account exists. Changing + this causes the location to be re-provisioned and cannot + be changed for the location with failover priority 0. + type: number + location: + description: The name of the Azure region to host replicated + data. + type: string + zoneRedundant: + description: Should zone redundancy be enabled for this + region? Defaults to false. + type: boolean + type: object + type: array + identity: + description: An identity block as defined below. + items: + properties: + identityIds: + description: Specifies a list of User Assigned Managed Identity + IDs to be assigned to this Cosmos Account. + items: + type: string + type: array + type: + description: The Type of Managed Identity assigned to this + Cosmos account. Possible values are SystemAssigned, UserAssigned + and SystemAssigned, UserAssigned. + type: string + type: object + type: array + ipRangeFilter: + description: 'CosmosDB Firewall Support: This value specifies + the set of IP addresses or IP address ranges in CIDR form to + be included as the allowed list of client IPs for a given database + account. IP addresses/ranges must be comma separated and must + not contain any spaces.' + type: string + isVirtualNetworkFilterEnabled: + description: Enables virtual network filtering for this Cosmos + DB account. + type: boolean + keyVaultKeyId: + description: A versionless Key Vault Key ID for CMK encryption. + Changing this forces a new resource to be created. + type: string + kind: + description: Specifies the Kind of CosmosDB to create - possible + values are GlobalDocumentDB, MongoDB and Parse. Defaults to + GlobalDocumentDB. Changing this forces a new resource to be + created. + type: string + localAuthenticationDisabled: + description: Disable local authentication and ensure only MSI + and AAD can be used exclusively for authentication. Defaults + to false. Can be set only when using the SQL API. + type: boolean + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + mongoServerVersion: + description: The Server Version of a MongoDB account. Possible + values are 4.2, 4.0, 3.6, and 3.2. + type: string + networkAclBypassForAzureServices: + description: If Azure services can bypass ACLs. Defaults to false. + type: boolean + networkAclBypassIds: + description: The list of resource Ids for Network Acl Bypass for + this Cosmos DB account. + items: + type: string + type: array + offerType: + description: Specifies the Offer Type to use for this CosmosDB + Account; currently, this can only be set to Standard. + type: string + publicNetworkAccessEnabled: + description: Whether or not public network access is allowed for + this CosmosDB account. Defaults to true. + type: boolean + restore: + description: A restore block as defined below. + items: + properties: + database: + description: A database block as defined below. Changing + this forces a new resource to be created. + items: + properties: + collectionNames: + description: A list of the collection names for the + restore request. Changing this forces a new resource + to be created. + items: + type: string + type: array + name: + description: Specifies the name of the CosmosDB Account. + Changing this forces a new resource to be created. + type: string + type: object + type: array + restoreTimestampInUtc: + description: The creation time of the database or the collection + (Datetime Format RFC 3339). Changing this forces a new + resource to be created. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + virtualNetworkRule: + description: Specifies a virtual_network_rules resource, used + to define which subnets are allowed to access this CosmosDB + account. + items: + properties: + id: + description: The ID of the virtual network subnet. + type: string + ignoreMissingVnetServiceEndpoint: + description: If set to true, the specified subnet will be + added as a virtual network rule even if its CosmosDB service + endpoint is not active. Defaults to false. + type: boolean + type: object + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -465,42 +913,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -599,14 +1011,22 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: consistencyPolicy is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.consistencyPolicy) - - message: geoLocation is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.geoLocation) - - message: location is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.location) - - message: offerType is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.offerType) + - message: spec.forProvider.consistencyPolicy is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.consistencyPolicy) + || (has(self.initProvider) && has(self.initProvider.consistencyPolicy))' + - message: spec.forProvider.geoLocation is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.geoLocation) + || (has(self.initProvider) && has(self.initProvider.geoLocation))' + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + - message: spec.forProvider.offerType is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.offerType) + || (has(self.initProvider) && has(self.initProvider.offerType))' status: description: AccountStatus defines the observed state of Account. properties: @@ -990,6 +1410,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandraclusters.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandraclusters.yaml index a5a7831c9..723ad387a 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandraclusters.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandraclusters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: cassandraclusters.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -100,6 +100,79 @@ spec: Cassandra Cluster. Changing this forces a new Cassandra Cluster to be created. type: string + delegatedManagementSubnetIdRef: + description: Reference to a Subnet in network to populate delegatedManagementSubnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + delegatedManagementSubnetIdSelector: + description: Selector for a Subnet in network to populate delegatedManagementSubnetId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object externalGossipCertificatePems: description: A list of TLS certificates that is used to authorize gossip from unmanaged Cassandra Data Center. @@ -126,8 +199,6 @@ spec: that should be configured on this Cassandra Cluster. The only possible value is SystemAssigned. type: string - required: - - type type: object type: array location: @@ -143,6 +214,81 @@ spec: Cluster should exist. Changing this forces a new Cassandra Cluster to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object tags: additionalProperties: type: string @@ -153,24 +299,102 @@ spec: to run. Possible values are 3.11 and 4.0. Defaults to 3.11. Changing this forces a new Cassandra Cluster to be created. type: string - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + authenticationMethod: + description: The authentication method that is used to authenticate + clients. Possible values are None and Cassandra. Defaults to + Cassandra. + type: string + clientCertificatePems: + description: A list of TLS certificates that is used to authorize + client connecting to the Cassandra Cluster. + items: + type: string + type: array + externalGossipCertificatePems: + description: A list of TLS certificates that is used to authorize + gossip from unmanaged Cassandra Data Center. + items: + type: string + type: array + externalSeedNodeIpAddresses: + description: A list of IP Addresses of the seed nodes in unmanaged + the Cassandra Data Center which will be added to the seed node + lists of all managed nodes. + items: + type: string + type: array + hoursBetweenBackups: + description: The number of hours to wait between taking a backup + of the Cassandra Cluster. Defaults to 24. + type: number + identity: + description: An identity block as defined below. + items: + properties: + type: + description: Specifies the type of Managed Service Identity + that should be configured on this Cassandra Cluster. The + only possible value is SystemAssigned. + type: string + type: object + type: array + location: + description: The Azure Region where the Cassandra Cluster should + exist. Changing this forces a new Cassandra Cluster to be created. + type: string + repairEnabled: + description: Is the automatic repair enabled on the Cassandra + Cluster? Defaults to true. + type: boolean + tags: + additionalProperties: + type: string + description: A mapping of tags assigned to the resource. + type: object + version: + description: The version of Cassandra what the Cluster converges + to run. Possible values are 3.11 and 4.0. Defaults to 3.11. + Changing this forces a new Cassandra Cluster to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -209,42 +433,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -343,12 +531,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: defaultAdminPasswordSecretRef is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.defaultAdminPasswordSecretRef) - - message: delegatedManagementSubnetId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.delegatedManagementSubnetId) - - message: location is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.location) + - message: spec.forProvider.defaultAdminPasswordSecretRef is a required + parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.defaultAdminPasswordSecretRef)' + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' status: description: CassandraClusterStatus defines the observed state of CassandraCluster. properties: @@ -464,6 +654,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandradatacenters.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandradatacenters.yaml index bc1745949..19c148dab 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandradatacenters.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandradatacenters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: cassandradatacenters.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -84,11 +84,159 @@ spec: description: The ID of the Cassandra Cluster. Changing this forces a new Cassandra Datacenter to be created. type: string + cassandraClusterIdRef: + description: Reference to a CassandraCluster in cosmosdb to populate + cassandraClusterId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + cassandraClusterIdSelector: + description: Selector for a CassandraCluster in cosmosdb to populate + cassandraClusterId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object delegatedManagementSubnetId: description: The ID of the delegated management subnet for this Cassandra Datacenter. Changing this forces a new Cassandra Datacenter to be created. type: string + delegatedManagementSubnetIdRef: + description: Reference to a Subnet in network to populate delegatedManagementSubnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + delegatedManagementSubnetIdSelector: + description: Selector for a Subnet in network to populate delegatedManagementSubnetId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object diskCount: description: Determines the number of p30 disks that are attached to each node. @@ -114,24 +262,84 @@ spec: skuName: description: Determines the selected sku. type: string - required: - - cassandraClusterId type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + availabilityZonesEnabled: + description: Determines whether availability zones are enabled. + Defaults to true. + type: boolean + backupStorageCustomerKeyUri: + description: The key URI of the customer key to use for the encryption + of the backup Storage Account. + type: string + base64EncodedYamlFragment: + description: The fragment of the cassandra.yaml configuration + file to be included in the cassandra.yaml for all nodes in this + Cassandra Datacenter. The fragment should be Base64 encoded + and only a subset of keys is allowed. + type: string + diskCount: + description: Determines the number of p30 disks that are attached + to each node. + type: number + diskSku: + description: The Disk SKU that is used for this Cassandra Datacenter. + Defaults to P30. + type: string + location: + description: The Azure Region where the Cassandra Datacenter should + exist. Changing this forces a new Cassandra Datacenter to be + created. + type: string + managedDiskCustomerKeyUri: + description: The key URI of the customer key to use for the encryption + of the Managed Disk. + type: string + nodeCount: + description: The number of nodes the Cassandra Datacenter should + have. The number should be equal or greater than 3. Defaults + to 3. + type: number + skuName: + description: Determines the selected sku. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -170,42 +378,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -304,10 +476,10 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: delegatedManagementSubnetId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.delegatedManagementSubnetId) - - message: location is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.location) + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' status: description: CassandraDatacenterStatus defines the observed state of CassandraDatacenter. properties: @@ -398,6 +570,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandrakeyspaces.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandrakeyspaces.yaml index e7a824ba3..94a00dcef 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandrakeyspaces.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandrakeyspaces.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: cassandrakeyspaces.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -71,6 +71,79 @@ spec: the table within. Changing this forces a new resource to be created. type: string + accountNameRef: + description: Reference to a Account in cosmosdb to populate accountName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + accountNameSelector: + description: Selector for a Account in cosmosdb to populate accountName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object autoscaleSettings: description: An autoscale_settings block as defined below. items: @@ -87,29 +160,139 @@ spec: DB Cassandra KeySpace is created. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object throughput: description: The throughput of Cassandra KeySpace (RU/s). Must be set in increments of 100. The minimum value is 400. type: number - required: - - accountName - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + autoscaleSettings: + description: An autoscale_settings block as defined below. + items: + properties: + maxThroughput: + description: The maximum throughput of the Cassandra KeySpace + (RU/s). Must be between 1,000 and 1,000,000. Must be set + in increments of 1,000. Conflicts with throughput. + type: number + type: object + type: array + throughput: + description: The throughput of Cassandra KeySpace (RU/s). Must + be set in increments of 100. The minimum value is 400. + type: number + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -148,42 +331,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -348,6 +495,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandratables.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandratables.yaml index a19102592..b21854a79 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandratables.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_cassandratables.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: cassandratables.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -180,9 +180,6 @@ spec: description: Order of the key. Currently supported values are Asc and Desc. type: string - required: - - name - - orderBy type: object type: array column: @@ -195,9 +192,6 @@ spec: type: description: Type of the column to be created. type: string - required: - - name - - type type: object type: array partitionKey: @@ -208,13 +202,8 @@ spec: name: description: Name of the column to be created. type: string - required: - - name type: object type: array - required: - - column - - partitionKey type: object type: array throughput: @@ -222,21 +211,110 @@ spec: be set in increments of 100. The minimum value is 400. type: number type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + analyticalStorageTtl: + description: Time to live of the Analytical Storage. Possible + values are between -1 and 2147483647 except 0. -1 means the + Analytical Storage never expires. Changing this forces a new + resource to be created. + type: number + autoscaleSettings: + description: An autoscale_settings block as defined below. + items: + properties: + maxThroughput: + description: The maximum throughput of the Cassandra Table + (RU/s). Must be between 1,000 and 1,000,000. Must be set + in increments of 1,000. Conflicts with throughput. + type: number + type: object + type: array + defaultTtl: + description: Time to live of the Cosmos DB Cassandra table. Possible + values are at least -1. -1 means the Cassandra table never expires. + type: number + schema: + description: A schema block as defined below. + items: + properties: + clusterKey: + description: One or more cluster_key blocks as defined below. + items: + properties: + name: + description: Name of the column to be created. + type: string + orderBy: + description: Order of the key. Currently supported + values are Asc and Desc. + type: string + type: object + type: array + column: + description: One or more column blocks as defined below. + items: + properties: + name: + description: Name of the column to be created. + type: string + type: + description: Type of the column to be created. + type: string + type: object + type: array + partitionKey: + description: One or more partition_key blocks as defined + below. + items: + properties: + name: + description: Name of the column to be created. + type: string + type: object + type: array + type: object + type: array + throughput: + description: The throughput of Cassandra KeySpace (RU/s). Must + be set in increments of 100. The minimum value is 400. + type: number + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -275,42 +353,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -409,8 +451,10 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: schema is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.schema) + - message: spec.forProvider.schema is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.schema) + || (has(self.initProvider) && has(self.initProvider.schema))' status: description: CassandraTableStatus defines the observed state of CassandraTable. properties: @@ -524,6 +568,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_gremlindatabases.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_gremlindatabases.yaml index b3f1fb799..8609a2350 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_gremlindatabases.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_gremlindatabases.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: gremlindatabases.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,6 +70,79 @@ spec: description: The name of the CosmosDB Account to create the Gremlin Database within. Changing this forces a new resource to be created. type: string + accountNameRef: + description: Reference to a Account to populate accountName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + accountNameSelector: + description: Selector for a Account to populate accountName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object autoscaleSettings: description: An autoscale_settings block as defined below. items: @@ -86,29 +159,139 @@ spec: DB Gremlin Database is created. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object throughput: description: The throughput of the Gremlin database (RU/s). Must be set in increments of 100. The minimum value is 400. type: number - required: - - accountName - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + autoscaleSettings: + description: An autoscale_settings block as defined below. + items: + properties: + maxThroughput: + description: The maximum throughput of the Gremlin database + (RU/s). Must be between 1,000 and 1,000,000. Must be set + in increments of 1,000. Conflicts with throughput. + type: number + type: object + type: array + throughput: + description: The throughput of the Gremlin database (RU/s). Must + be set in increments of 100. The minimum value is 400. + type: number + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -147,42 +330,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -346,6 +493,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_gremlingraphs.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_gremlingraphs.yaml index af21d50e0..c6474898b 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_gremlingraphs.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_gremlingraphs.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: gremlingraphs.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,6 +70,79 @@ spec: description: The name of the CosmosDB Account to create the Gremlin Graph within. Changing this forces a new resource to be created. type: string + accountNameRef: + description: Reference to a Account to populate accountName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + accountNameSelector: + description: Selector for a Account to populate accountName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object autoscaleSettings: description: An autoscale_settings block as defined below. Requires partition_key_path to be set. @@ -99,8 +172,6 @@ spec: description: 'Indicates the conflict resolution mode. Possible values include: LastWriterWins, Custom.' type: string - required: - - mode type: object type: array databaseName: @@ -214,13 +285,8 @@ spec: Point, and Polygon will be applied to the path. type: string - required: - - order - - path type: object type: array - required: - - index type: object type: array excludedPaths: @@ -250,12 +316,8 @@ spec: spatial types including LineString, MultiPolygon, Point, and Polygon will be applied to the path. type: string - required: - - path type: object type: array - required: - - indexingMode type: object type: array partitionKeyPath: @@ -272,6 +334,81 @@ spec: DB Gremlin Graph is created. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object throughput: description: The throughput of the Gremlin graph (RU/s). Must be set in increments of 100. The minimum value is 400. @@ -287,29 +424,172 @@ spec: items: type: string type: array - required: - - paths type: object type: array - required: - - accountName - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + autoscaleSettings: + description: An autoscale_settings block as defined below. Requires + partition_key_path to be set. + items: + properties: + maxThroughput: + description: The maximum throughput of the Gremlin graph + (RU/s). Must be between 1,000 and 1,000,000. Must be set + in increments of 1,000. Conflicts with throughput. + type: number + type: object + type: array + conflictResolutionPolicy: + description: A conflict_resolution_policy blocks as defined below. + Changing this forces a new resource to be created. + items: + properties: + conflictResolutionPath: + description: The conflict resolution path in the case of + LastWriterWins mode. + type: string + conflictResolutionProcedure: + description: The procedure to resolve conflicts in the case + of custom mode. + type: string + mode: + description: 'Indicates the conflict resolution mode. Possible + values include: LastWriterWins, Custom.' + type: string + type: object + type: array + defaultTtl: + description: The default time to live (TTL) of the Gremlin graph. + If the value is missing or set to "-1", items don’t expire. + type: number + indexPolicy: + description: The configuration of the indexing policy. One or + more index_policy blocks as defined below. + items: + properties: + automatic: + description: Indicates if the indexing policy is automatic. + Defaults to true. + type: boolean + compositeIndex: + description: One or more composite_index blocks as defined + below. + items: + properties: + index: + description: One or more index blocks as defined below. + items: + properties: + order: + description: Order of the index. Possible values + are Ascending or Descending. + type: string + path: + description: Path for which the indexing behaviour + applies to. According to the service design, + all spatial types including LineString, MultiPolygon, + Point, and Polygon will be applied to the + path. + type: string + type: object + type: array + type: object + type: array + excludedPaths: + description: List of paths to exclude from indexing. Required + if indexing_mode is Consistent or Lazy. + items: + type: string + type: array + includedPaths: + description: List of paths to include in the indexing. Required + if indexing_mode is Consistent or Lazy. + items: + type: string + type: array + indexingMode: + description: 'Indicates the indexing mode. Possible values + include: Consistent, Lazy, None.' + type: string + spatialIndex: + description: One or more spatial_index blocks as defined + below. + items: + properties: + path: + description: Path for which the indexing behaviour + applies to. According to the service design, all + spatial types including LineString, MultiPolygon, + Point, and Polygon will be applied to the path. + type: string + type: object + type: array + type: object + type: array + partitionKeyPath: + description: Define a partition key. Changing this forces a new + resource to be created. + type: string + partitionKeyVersion: + description: Define a partition key version. Changing this forces + a new resource to be created. Possible values are 1and 2. This + should be set to 2 in order to use large partition keys. + type: number + throughput: + description: The throughput of the Gremlin graph (RU/s). Must + be set in increments of 100. The minimum value is 400. + type: number + uniqueKey: + description: One or more unique_key blocks as defined below. Changing + this forces a new resource to be created. + items: + properties: + paths: + description: A list of paths to use for this unique key. + Changing this forces a new resource to be created. + items: + type: string + type: array + type: object + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -348,42 +628,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -482,8 +726,10 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: partitionKeyPath is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.partitionKeyPath) + - message: spec.forProvider.partitionKeyPath is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.partitionKeyPath) + || (has(self.initProvider) && has(self.initProvider.partitionKeyPath))' status: description: GremlinGraphStatus defines the observed state of GremlinGraph. properties: @@ -669,6 +915,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_mongocollections.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_mongocollections.yaml index 2feae271e..167af6426 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_mongocollections.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_mongocollections.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: mongocollections.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -71,6 +71,79 @@ spec: DB Mongo Collection is created. Changing this forces a new resource to be created. type: string + accountNameRef: + description: Reference to a Account to populate accountName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + accountNameSelector: + description: Selector for a Account to populate accountName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object analyticalStorageTtl: description: The default time to live of Analytical Storage for this Mongo Collection. If present and the value is set to -1, @@ -184,8 +257,6 @@ spec: unique: description: Is the index unique or not? Defaults to false. type: boolean - required: - - keys type: object type: array resourceGroupName: @@ -193,6 +264,140 @@ spec: DB Mongo Collection is created. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + shardKey: + description: The name of the key to partition on for sharding. + There must not be any other unique index keys. Changing this + forces a new resource to be created. + type: string + throughput: + description: The throughput of the MongoDB collection (RU/s). + Must be set in increments of 100. The minimum value is 400. + type: number + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + analyticalStorageTtl: + description: The default time to live of Analytical Storage for + this Mongo Collection. If present and the value is set to -1, + it is equal to infinity, and items don’t expire by default. + If present and the value is set to some number n – items will + expire n seconds after their last modified time. + type: number + autoscaleSettings: + description: An autoscale_settings block as defined below. + items: + properties: + maxThroughput: + description: The maximum throughput of the MongoDB collection + (RU/s). Must be between 1,000 and 1,000,000. Must be set + in increments of 1,000. Conflicts with throughput. + type: number + type: object + type: array + defaultTtlSeconds: + description: The default Time To Live in seconds. If the value + is -1, items are not automatically expired. + type: number + index: + description: One or more index blocks as defined below. + items: + properties: + keys: + description: Specifies the list of user settable keys for + each Cosmos DB Mongo Collection. + items: + type: string + type: array + unique: + description: Is the index unique or not? Defaults to false. + type: boolean + type: object + type: array shardKey: description: The name of the key to partition on for sharding. There must not be any other unique index keys. Changing this @@ -202,25 +407,32 @@ spec: description: The throughput of the MongoDB collection (RU/s). Must be set in increments of 100. The minimum value is 400. type: number - required: - - accountName - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -259,42 +471,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -511,6 +687,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_mongodatabases.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_mongodatabases.yaml index 8706aa6b5..cbc37e0ba 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_mongodatabases.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_mongodatabases.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: mongodatabases.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -71,6 +71,79 @@ spec: the table within. Changing this forces a new resource to be created. type: string + accountNameRef: + description: Reference to a Account to populate accountName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + accountNameSelector: + description: Selector for a Account to populate accountName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object autoscaleSettings: description: An autoscale_settings block as defined below. items: @@ -87,29 +160,139 @@ spec: DB Mongo Database is created. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object throughput: description: The throughput of the MongoDB database (RU/s). Must be set in increments of 100. The minimum value is 400. type: number - required: - - accountName - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + autoscaleSettings: + description: An autoscale_settings block as defined below. + items: + properties: + maxThroughput: + description: The maximum throughput of the MongoDB database + (RU/s). Must be between 1,000 and 1,000,000. Must be set + in increments of 1,000. Conflicts with throughput. + type: number + type: object + type: array + throughput: + description: The throughput of the MongoDB database (RU/s). Must + be set in increments of 100. The minimum value is 400. + type: number + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -148,42 +331,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -348,6 +495,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlcontainers.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlcontainers.yaml index 5372dee89..79613d6a1 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlcontainers.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlcontainers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: sqlcontainers.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,6 +70,79 @@ spec: description: The name of the Cosmos DB Account to create the container within. Changing this forces a new resource to be created. type: string + accountNameRef: + description: Reference to a Account to populate accountName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + accountNameSelector: + description: Selector for a Account to populate accountName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object analyticalStorageTtl: description: The default time to live of Analytical Storage for this SQL container. If present and the value is set to -1, it @@ -106,8 +179,6 @@ spec: description: 'Indicates the conflict resolution mode. Possible values include: LastWriterWins, Custom.' type: string - required: - - mode type: object type: array databaseName: @@ -219,13 +290,8 @@ spec: Point, and Polygon will be applied to the path. type: string - required: - - order - - path type: object type: array - required: - - index type: object type: array excludedPath: @@ -240,8 +306,6 @@ spec: spatial types including LineString, MultiPolygon, Point, and Polygon will be applied to the path. type: string - required: - - path type: object type: array includedPath: @@ -256,8 +320,6 @@ spec: spatial types including LineString, MultiPolygon, Point, and Polygon will be applied to the path. type: string - required: - - path type: object type: array indexingMode: @@ -275,8 +337,6 @@ spec: spatial types including LineString, MultiPolygon, Point, and Polygon will be applied to the path. type: string - required: - - path type: object type: array type: object @@ -295,6 +355,81 @@ spec: DB SQL Container is created. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object throughput: description: The throughput of SQL container (RU/s). Must be set in increments of 100. The minimum value is 400. @@ -310,29 +445,193 @@ spec: items: type: string type: array - required: - - paths type: object type: array - required: - - accountName - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + analyticalStorageTtl: + description: The default time to live of Analytical Storage for + this SQL container. If present and the value is set to -1, it + is equal to infinity, and items don’t expire by default. If + present and the value is set to some number n – items will expire + n seconds after their last modified time. + type: number + autoscaleSettings: + description: An autoscale_settings block as defined below. Requires + partition_key_path to be set. + items: + properties: + maxThroughput: + description: The maximum throughput of the SQL container + (RU/s). Must be between 1,000 and 1,000,000. Must be set + in increments of 1,000. Conflicts with throughput. + type: number + type: object + type: array + conflictResolutionPolicy: + description: A conflict_resolution_policy blocks as defined below. + Changing this forces a new resource to be created. + items: + properties: + conflictResolutionPath: + description: The conflict resolution path in the case of + LastWriterWins mode. + type: string + conflictResolutionProcedure: + description: The procedure to resolve conflicts in the case + of Custom mode. + type: string + mode: + description: 'Indicates the conflict resolution mode. Possible + values include: LastWriterWins, Custom.' + type: string + type: object + type: array + defaultTtl: + description: The default time to live of SQL container. If missing, + items are not expired automatically. If present and the value + is set to -1, it is equal to infinity, and items don’t expire + by default. If present and the value is set to some number n + – items will expire n seconds after their last modified time. + type: number + indexingPolicy: + description: An indexing_policy block as defined below. + items: + properties: + compositeIndex: + description: One or more composite_index blocks as defined + below. + items: + properties: + index: + description: One or more index blocks as defined below. + items: + properties: + order: + description: Order of the index. Possible values + are Ascending or Descending. + type: string + path: + description: Path for which the indexing behaviour + applies to. According to the service design, + all spatial types including LineString, MultiPolygon, + Point, and Polygon will be applied to the + path. + type: string + type: object + type: array + type: object + type: array + excludedPath: + description: One or more excluded_path blocks as defined + below. Either included_path or excluded_path must contain + the path /* + items: + properties: + path: + description: Path for which the indexing behaviour + applies to. According to the service design, all + spatial types including LineString, MultiPolygon, + Point, and Polygon will be applied to the path. + type: string + type: object + type: array + includedPath: + description: One or more included_path blocks as defined + below. Either included_path or excluded_path must contain + the path /* + items: + properties: + path: + description: Path for which the indexing behaviour + applies to. According to the service design, all + spatial types including LineString, MultiPolygon, + Point, and Polygon will be applied to the path. + type: string + type: object + type: array + indexingMode: + description: 'Indicates the indexing mode. Possible values + include: consistent and none. Defaults to consistent.' + type: string + spatialIndex: + description: One or more spatial_index blocks as defined + below. + items: + properties: + path: + description: Path for which the indexing behaviour + applies to. According to the service design, all + spatial types including LineString, MultiPolygon, + Point, and Polygon will be applied to the path. + type: string + type: object + type: array + type: object + type: array + partitionKeyPath: + description: Define a partition key. Changing this forces a new + resource to be created. + type: string + partitionKeyVersion: + description: Define a partition key version. Changing this forces + a new resource to be created. Possible values are 1and 2. This + should be set to 2 in order to use large partition keys. + type: number + throughput: + description: The throughput of SQL container (RU/s). Must be set + in increments of 100. The minimum value is 400. + type: number + uniqueKey: + description: One or more unique_key blocks as defined below. Changing + this forces a new resource to be created. + items: + properties: + paths: + description: A list of paths to use for this unique key. + Changing this forces a new resource to be created. + items: + type: string + type: array + type: object + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -371,42 +670,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -505,8 +768,10 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: partitionKeyPath is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.partitionKeyPath) + - message: spec.forProvider.partitionKeyPath is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.partitionKeyPath) + || (has(self.initProvider) && has(self.initProvider.partitionKeyPath))' status: description: SQLContainerStatus defines the observed state of SQLContainer. properties: @@ -714,6 +979,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqldatabases.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqldatabases.yaml index 245db1e5d..975259e8d 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqldatabases.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqldatabases.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: sqldatabases.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -71,6 +71,79 @@ spec: the table within. Changing this forces a new resource to be created. type: string + accountNameRef: + description: Reference to a Account to populate accountName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + accountNameSelector: + description: Selector for a Account to populate accountName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object autoscaleSettings: description: An autoscale_settings block as defined below. items: @@ -87,31 +160,143 @@ spec: DB SQL Database is created. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object throughput: description: The throughput of SQL database (RU/s). Must be set in increments of 100. The minimum value is 400. Do not set when azurerm_cosmosdb_account is configured with EnableServerless capability. type: number - required: - - accountName - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + autoscaleSettings: + description: An autoscale_settings block as defined below. + items: + properties: + maxThroughput: + description: The maximum throughput of the SQL database + (RU/s). Must be between 1,000 and 1,000,000. Must be set + in increments of 1,000. Conflicts with throughput. + type: number + type: object + type: array + throughput: + description: The throughput of SQL database (RU/s). Must be set + in increments of 100. The minimum value is 400. Do not set when + azurerm_cosmosdb_account is configured with EnableServerless + capability. + type: number + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -150,42 +335,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -352,6 +501,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqldedicatedgateways.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqldedicatedgateways.yaml index 5e2d12118..1200c2654 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqldedicatedgateways.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqldedicatedgateways.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: sqldedicatedgateways.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,6 +70,79 @@ spec: description: The resource ID of the CosmosDB Account. Changing this forces a new resource to be created. type: string + cosmosdbAccountIdRef: + description: Reference to a Account in cosmosdb to populate cosmosdbAccountId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + cosmosdbAccountIdSelector: + description: Selector for a Account in cosmosdb to populate cosmosdbAccountId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object instanceCount: description: The instance count for the CosmosDB SQL Dedicated Gateway. Possible value is between 1 and 5. @@ -79,24 +152,54 @@ spec: Gateway. Changing this forces a new resource to be created. Possible values are Cosmos.D4s, Cosmos.D8s and Cosmos.D16s. type: string - required: - - cosmosdbAccountId type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + instanceCount: + description: The instance count for the CosmosDB SQL Dedicated + Gateway. Possible value is between 1 and 5. + type: number + instanceSize: + description: The instance size for the CosmosDB SQL Dedicated + Gateway. Changing this forces a new resource to be created. + Possible values are Cosmos.D4s, Cosmos.D8s and Cosmos.D16s. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -135,42 +238,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -269,10 +336,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: instanceCount is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.instanceCount) - - message: instanceSize is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.instanceSize) + - message: spec.forProvider.instanceCount is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.instanceCount) + || (has(self.initProvider) && has(self.initProvider.instanceCount))' + - message: spec.forProvider.instanceSize is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.instanceSize) + || (has(self.initProvider) && has(self.initProvider.instanceSize))' status: description: SQLDedicatedGatewayStatus defines the observed state of SQLDedicatedGateway. properties: @@ -328,6 +399,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlfunctions.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlfunctions.yaml index 4c4111b50..704d84b1e 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlfunctions.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlfunctions.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: sqlfunctions.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -148,21 +148,47 @@ spec: type: object type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + body: + description: Body of the User Defined Function. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -201,42 +227,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -335,8 +325,10 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: body is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.body) + - message: spec.forProvider.body is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.body) + || (has(self.initProvider) && has(self.initProvider.body))' status: description: SQLFunctionStatus defines the observed state of SQLFunction. properties: @@ -387,6 +379,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlroleassignments.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlroleassignments.yaml index f7dc8b872..2175f29bb 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlroleassignments.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlroleassignments.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: sqlroleassignments.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,6 +70,79 @@ spec: description: The name of the Cosmos DB Account. Changing this forces a new resource to be created. type: string + accountNameRef: + description: Reference to a Account in cosmosdb to populate accountName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + accountNameSelector: + description: Selector for a Account in cosmosdb to populate accountName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object name: description: The GUID as the name of the Cosmos DB SQL Role Assignment - one will be generated if not specified. Changing this forces @@ -84,30 +157,285 @@ spec: DB SQL Role Assignment is created. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object roleDefinitionId: description: The resource ID of the Cosmos DB SQL Role Definition. type: string + roleDefinitionIdRef: + description: Reference to a SQLRoleDefinition in cosmosdb to populate + roleDefinitionId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + roleDefinitionIdSelector: + description: Selector for a SQLRoleDefinition in cosmosdb to populate + roleDefinitionId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object scope: description: The data plane resource path for which access is being granted through this Cosmos DB SQL Role Assignment. Changing this forces a new resource to be created. type: string + scopeRef: + description: Reference to a Account in cosmosdb to populate scope. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + scopeSelector: + description: Selector for a Account in cosmosdb to populate scope. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + name: + description: The GUID as the name of the Cosmos DB SQL Role Assignment + - one will be generated if not specified. Changing this forces + a new resource to be created. + type: string + principalId: + description: The ID of the Principal (Client) in Azure Active + Directory. Changing this forces a new resource to be created. + type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -146,42 +474,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -280,16 +572,10 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: accountName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.accountName) - - message: principalId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.principalId) - - message: resourceGroupName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.resourceGroupName) - - message: roleDefinitionId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.roleDefinitionId) - - message: scope is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.scope) + - message: spec.forProvider.principalId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.principalId) + || (has(self.initProvider) && has(self.initProvider.principalId))' status: description: SQLRoleAssignmentStatus defines the observed state of SQLRoleAssignment. properties: @@ -358,6 +644,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlroledefinitions.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlroledefinitions.yaml index 3bb1043fe..3708a1b3f 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlroledefinitions.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlroledefinitions.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: sqlroledefinitions.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,6 +70,79 @@ spec: description: The name of the Cosmos DB Account. Changing this forces a new resource to be created. type: string + accountNameRef: + description: Reference to a Account in cosmosdb to populate accountName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + accountNameSelector: + description: Selector for a Account in cosmosdb to populate accountName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object assignableScopes: description: A list of fully qualified scopes at or below which Role Assignments may be created using this Cosmos DB SQL Role @@ -94,8 +167,6 @@ spec: items: type: string type: array - required: - - dataActions type: object type: array resourceGroupName: @@ -103,6 +174,81 @@ spec: DB SQL Role Definition is created. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object roleDefinitionId: description: The GUID as the name of the Cosmos DB SQL Role Definition - one will be generated if not specified. Changing this forces @@ -114,21 +260,80 @@ spec: Changing this forces a new resource to be created. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + assignableScopes: + description: A list of fully qualified scopes at or below which + Role Assignments may be created using this Cosmos DB SQL Role + Definition. It will allow application of this Cosmos DB SQL + Role Definition on the entire Database Account or any underlying + Database/Collection. Scopes higher than Database Account are + not enforceable as assignable scopes. + items: + type: string + type: array + name: + description: An user-friendly name for the Cosmos DB SQL Role + Definition which must be unique for the Database Account. + type: string + permissions: + description: A permissions block as defined below. + items: + properties: + dataActions: + description: A list of data actions that are allowed for + the Cosmos DB SQL Role Definition. + items: + type: string + type: array + type: object + type: array + roleDefinitionId: + description: The GUID as the name of the Cosmos DB SQL Role Definition + - one will be generated if not specified. Changing this forces + a new resource to be created. + type: string + type: + description: The type of the Cosmos DB SQL Role Definition. Possible + values are BuiltInRole and CustomRole. Defaults to CustomRole. + Changing this forces a new resource to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -167,42 +372,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -301,16 +470,18 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: accountName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.accountName) - - message: assignableScopes is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.assignableScopes) - - message: name is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.name) - - message: permissions is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.permissions) - - message: resourceGroupName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.resourceGroupName) + - message: spec.forProvider.assignableScopes is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.assignableScopes) + || (has(self.initProvider) && has(self.initProvider.assignableScopes))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.permissions is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.permissions) + || (has(self.initProvider) && has(self.initProvider.permissions))' status: description: SQLRoleDefinitionStatus defines the observed state of SQLRoleDefinition. properties: @@ -398,6 +569,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlstoredprocedures.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlstoredprocedures.yaml index b276caabd..fcbb9c941 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlstoredprocedures.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqlstoredprocedures.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: sqlstoredprocedures.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -71,6 +71,79 @@ spec: procedure within. Changing this forces a new resource to be created. type: string + accountNameRef: + description: Reference to a Account to populate accountName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + accountNameSelector: + description: Selector for a Account to populate accountName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object body: description: The body of the stored procedure. type: string @@ -235,25 +308,123 @@ spec: DB SQL Database is created. Changing this forces a new resource to be created. type: string - required: - - accountName - - resourceGroupName + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + body: + description: The body of the stored procedure. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -292,42 +463,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -426,8 +561,10 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: body is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.body) + - message: spec.forProvider.body is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.body) + || (has(self.initProvider) && has(self.initProvider.body))' status: description: SQLStoredProcedureStatus defines the observed state of SQLStoredProcedure. properties: @@ -493,6 +630,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqltriggers.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqltriggers.yaml index 5f4017593..8f7ad9706 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqltriggers.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_sqltriggers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: sqltriggers.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -156,21 +156,55 @@ spec: Post. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + body: + description: Body of the Trigger. + type: string + operation: + description: The operation the trigger is associated with. Possible + values are All, Create, Update, Delete and Replace. + type: string + type: + description: Type of the Trigger. Possible values are Pre and + Post. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -209,42 +243,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -343,12 +341,18 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: body is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.body) - - message: operation is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.operation) - - message: type is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.type) + - message: spec.forProvider.body is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.body) + || (has(self.initProvider) && has(self.initProvider.body))' + - message: spec.forProvider.operation is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.operation) + || (has(self.initProvider) && has(self.initProvider.operation))' + - message: spec.forProvider.type is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.type) + || (has(self.initProvider) && has(self.initProvider.type))' status: description: SQLTriggerStatus defines the observed state of SQLTrigger. properties: @@ -407,6 +411,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_tables.yaml b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_tables.yaml index 431f422d4..8ed7943af 100644 --- a/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_tables.yaml +++ b/charts/kubedb-provider-azure/crds/cosmosdb.azure.kubedb.com_tables.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: tables.cosmosdb.azure.kubedb.com spec: group: cosmosdb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,6 +70,79 @@ spec: description: The name of the Cosmos DB Table to create the table within. Changing this forces a new resource to be created. type: string + accountNameRef: + description: Reference to a Account to populate accountName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + accountNameSelector: + description: Selector for a Account to populate accountName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object autoscaleSettings: description: An autoscale_settings block as defined below. items: @@ -86,29 +159,139 @@ spec: DB Table is created. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object throughput: description: The throughput of Table (RU/s). Must be set in increments of 100. The minimum value is 400. type: number - required: - - accountName - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + autoscaleSettings: + description: An autoscale_settings block as defined below. + items: + properties: + maxThroughput: + description: The maximum throughput of the Table (RU/s). + Must be between 1,000 and 1,000,000. Must be set in increments + of 1,000. Conflicts with throughput. + type: number + type: object + type: array + throughput: + description: The throughput of Table (RU/s). Must be set in increments + of 100. The minimum value is 400. + type: number + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -147,42 +330,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -346,6 +493,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_configurations.yaml b/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_configurations.yaml index 21bf96ca5..1fb3a1bbd 100644 --- a/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_configurations.yaml +++ b/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_configurations.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: configurations.dbformariadb.azure.kubedb.com spec: group: dbformariadb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -75,31 +75,214 @@ spec: description: The name of the resource group in which the MariaDB Server exists. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: Specifies the name of the MariaDB Server. Changing this forces a new resource to be created. type: string + serverNameRef: + description: Reference to a Server in dbformariadb to populate + serverName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverNameSelector: + description: Selector for a Server in dbformariadb to populate + serverName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object value: description: Specifies the value of the MariaDB Configuration. See the MariaDB documentation for valid values. Changing this forces a new resource to be created. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + name: + description: Specifies the name of the MariaDB Configuration, + which needs to be a valid MariaDB configuration name. Changing + this forces a new resource to be created. + type: string + value: + description: Specifies the value of the MariaDB Configuration. + See the MariaDB documentation for valid values. Changing this + forces a new resource to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -138,42 +321,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -272,14 +419,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: name is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.name) - - message: resourceGroupName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.resourceGroupName) - - message: serverName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.serverName) - - message: value is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.value) + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.value is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.value) + || (has(self.initProvider) && has(self.initProvider.value))' status: description: ConfigurationStatus defines the observed state of Configuration. properties: @@ -340,6 +487,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_databases.yaml b/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_databases.yaml index 4669d69fc..495ed5e56 100644 --- a/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_databases.yaml +++ b/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_databases.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: databases.dbformariadb.azure.kubedb.com spec: group: dbformariadb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -80,29 +80,209 @@ spec: description: The name of the resource group in which the MariaDB Server exists. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: Specifies the name of the MariaDB Server. Changing this forces a new resource to be created. type: string - required: - - resourceGroupName - - serverName + serverNameRef: + description: Reference to a Server in dbformariadb to populate + serverName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverNameSelector: + description: Selector for a Server in dbformariadb to populate + serverName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + charset: + description: Specifies the Charset for the MariaDB Database, which + needs to be a valid MariaDB Charset. Changing this forces a + new resource to be created. + type: string + collation: + description: Specifies the Collation for the MariaDB Database, + which needs to be a valid MariaDB Collation. Changing this forces + a new resource to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -141,42 +321,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -275,10 +419,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: charset is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.charset) - - message: collation is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.collation) + - message: spec.forProvider.charset is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.charset) + || (has(self.initProvider) && has(self.initProvider.charset))' + - message: spec.forProvider.collation is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.collation) + || (has(self.initProvider) && has(self.initProvider.collation))' status: description: DatabaseStatus defines the observed state of Database. properties: @@ -339,6 +487,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_firewallrules.yaml b/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_firewallrules.yaml index b28d13c4b..3ea8576d7 100644 --- a/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_firewallrules.yaml +++ b/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_firewallrules.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: firewallrules.dbformariadb.azure.kubedb.com spec: group: dbformariadb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -74,33 +74,209 @@ spec: description: The name of the resource group in which the MariaDB Server exists. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: Specifies the name of the MariaDB Server. Changing this forces a new resource to be created. type: string + serverNameRef: + description: Reference to a Server to populate serverName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverNameSelector: + description: Selector for a Server to populate serverName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + startIpAddress: + description: Specifies the Start IP Address associated with this + Firewall Rule. + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + endIpAddress: + description: Specifies the End IP Address associated with this + Firewall Rule. + type: string startIpAddress: description: Specifies the Start IP Address associated with this Firewall Rule. type: string - required: - - resourceGroupName - - serverName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -139,42 +315,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -273,10 +413,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: endIpAddress is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.endIpAddress) - - message: startIpAddress is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.startIpAddress) + - message: spec.forProvider.endIpAddress is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.endIpAddress) + || (has(self.initProvider) && has(self.initProvider.endIpAddress))' + - message: spec.forProvider.startIpAddress is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.startIpAddress) + || (has(self.initProvider) && has(self.initProvider.startIpAddress))' status: description: FirewallRuleStatus defines the observed state of FirewallRule. properties: @@ -335,6 +479,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_servers.yaml b/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_servers.yaml index 4093555f5..d03c5bc56 100644 --- a/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_servers.yaml +++ b/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_servers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: servers.dbformariadb.azure.kubedb.com spec: group: dbformariadb.azure.kubedb.com @@ -55,7 +55,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -107,6 +107,79 @@ spec: description: For creation modes other than Default, the source server ID to use. type: string + creationSourceServerIdRef: + description: Reference to a Server to populate creationSourceServerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + creationSourceServerIdSelector: + description: Selector for a Server to populate creationSourceServerId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object geoRedundantBackupEnabled: description: Turn Geo-redundant server backups on/off. This allows you to choose between locally redundant or geo-redundant backup @@ -131,6 +204,172 @@ spec: the MariaDB Server. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + restorePointInTime: + description: When create_mode is PointInTimeRestore, specifies + the point in time to restore from creation_source_server_id. + It should be provided in RFC3339 format, e.g. 2013-11-08T22:00:40Z. + type: string + skuName: + description: Specifies the SKU Name for this MariaDB Server. The + name of the SKU, follows the tier + family + cores pattern (e.g. + B_Gen4_1, GP_Gen5_8). For more information see the product documentation. + Possible values are B_Gen5_1, B_Gen5_2, GP_Gen5_2, GP_Gen5_4, + GP_Gen5_8, GP_Gen5_16, GP_Gen5_32, MO_Gen5_2, MO_Gen5_4, MO_Gen5_8 + and MO_Gen5_16. + type: string + sslEnforcementEnabled: + description: Specifies if SSL should be enforced on connections. + Possible values are true and false. + type: boolean + sslMinimalTlsVersionEnforced: + description: The minimum TLS version to support on the sever. + Possible values are TLSEnforcementDisabled, TLS1_0, TLS1_1, + and TLS1_2. Defaults to TLS1_2. + type: string + storageMb: + description: Max storage allowed for a server. Possible values + are between 5120 MB (5GB) and 1024000MB (1TB) for the Basic + SKU and between 5120 MB (5GB) and 4096000 MB (4TB) for General + Purpose/Memory Optimized SKUs. For more information see the + product documentation. + type: number + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + version: + description: Specifies the version of MariaDB to use. Possible + values are 10.2 and 10.3. Changing this forces a new resource + to be created. + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + administratorLogin: + description: The Administrator login for the MariaDB Server. Changing + this forces a new resource to be created. + type: string + autoGrowEnabled: + description: Enable/Disable auto-growing of the storage. Storage + auto-grow prevents your server from running out of storage and + becoming read-only. If storage auto grow is enabled, the storage + automatically grows without impacting the workload. The default + value if not explicitly specified is true. + type: boolean + backupRetentionDays: + description: Backup retention days for the server, supported values + are between 7 and 35 days. + type: number + createMode: + description: The creation mode. Can be used to restore or replicate + existing servers. Possible values are Default, Replica, GeoRestore, + and PointInTimeRestore. Defaults to Default. + type: string + geoRedundantBackupEnabled: + description: Turn Geo-redundant server backups on/off. This allows + you to choose between locally redundant or geo-redundant backup + storage in the General Purpose and Memory Optimized tiers. When + the backups are stored in geo-redundant backup storage, they + are not only stored within the region in which your server is + hosted, but are also replicated to a paired data center. This + provides better protection and ability to restore your server + in a different region in the event of a disaster. This is not + supported for the Basic tier. + type: boolean + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + publicNetworkAccessEnabled: + description: Whether or not public network access is allowed for + this server. Defaults to true. + type: boolean restorePointInTime: description: When create_mode is PointInTimeRestore, specifies the point in time to restore from creation_source_server_id. @@ -170,24 +409,32 @@ spec: values are 10.2 and 10.3. Changing this forces a new resource to be created. type: string - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -226,42 +473,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -360,14 +571,22 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: location is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.location) - - message: skuName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.skuName) - - message: sslEnforcementEnabled is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.sslEnforcementEnabled) - - message: version is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.version) + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + - message: spec.forProvider.skuName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.skuName) + || (has(self.initProvider) && has(self.initProvider.skuName))' + - message: spec.forProvider.sslEnforcementEnabled is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.sslEnforcementEnabled) + || (has(self.initProvider) && has(self.initProvider.sslEnforcementEnabled))' + - message: spec.forProvider.version is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.version) + || (has(self.initProvider) && has(self.initProvider.version))' status: description: ServerStatus defines the observed state of Server. properties: @@ -500,6 +719,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_virtualnetworkrules.yaml b/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_virtualnetworkrules.yaml index 0e74a4203..5f2dcc3ae 100644 --- a/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_virtualnetworkrules.yaml +++ b/charts/kubedb-provider-azure/crds/dbformariadb.azure.kubedb.com_virtualnetworkrules.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: virtualnetworkrules.dbformariadb.azure.kubedb.com spec: group: dbformariadb.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,34 +70,276 @@ spec: description: The name of the resource group where the MariaDB server resides. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: The name of the SQL Server to which this MariaDB virtual network rule will be applied to. Changing this forces a new resource to be created. type: string + serverNameRef: + description: Reference to a Server in dbformariadb to populate + serverName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverNameSelector: + description: Selector for a Server in dbformariadb to populate + serverName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object subnetId: description: The ID of the subnet that the MariaDB server will be connected to. type: string - required: - - resourceGroupName - - serverName + subnetIdRef: + description: Reference to a Subnet in network to populate subnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + subnetIdSelector: + description: Selector for a Subnet in network to populate subnetId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -136,42 +378,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -269,9 +475,6 @@ spec: required: - forProvider type: object - x-kubernetes-validations: - - message: subnetId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.subnetId) status: description: VirtualNetworkRuleStatus defines the observed state of VirtualNetworkRule. properties: @@ -327,6 +530,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_activedirectoryadministrators.yaml b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_activedirectoryadministrators.yaml index 943260352..fc8e01e89 100644 --- a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_activedirectoryadministrators.yaml +++ b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_activedirectoryadministrators.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: activedirectoryadministrators.dbformysql.azure.kubedb.com spec: group: dbformysql.azure.kubedb.com @@ -57,7 +57,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -79,29 +79,211 @@ spec: description: The name of the resource group for the MySQL server. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: The name of the MySQL Server on which to set the administrator. Changing this forces a new resource to be created. type: string + serverNameRef: + description: Reference to a Server in dbformysql to populate serverName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverNameSelector: + description: Selector for a Server in dbformysql to populate serverName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + tenantId: + description: The Azure Tenant ID + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + login: + description: The login name of the principal to set as the server + administrator + type: string + objectId: + description: The ID of the principal to set as the server administrator. + For a managed identity this should be the Client ID of the identity. + type: string tenantId: description: The Azure Tenant ID type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -140,42 +322,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -274,16 +420,18 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: login is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.login) - - message: objectId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.objectId) - - message: resourceGroupName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.resourceGroupName) - - message: serverName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.serverName) - - message: tenantId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.tenantId) + - message: spec.forProvider.login is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.login) + || (has(self.initProvider) && has(self.initProvider.login))' + - message: spec.forProvider.objectId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.objectId) + || (has(self.initProvider) && has(self.initProvider.objectId))' + - message: spec.forProvider.tenantId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.tenantId) + || (has(self.initProvider) && has(self.initProvider.tenantId))' status: description: ActiveDirectoryAdministratorStatus defines the observed state of ActiveDirectoryAdministrator. @@ -346,6 +494,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_configurations.yaml b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_configurations.yaml index 4df88951b..a975c2232 100644 --- a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_configurations.yaml +++ b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_configurations.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: configurations.dbformysql.azure.kubedb.com spec: group: dbformysql.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -75,31 +75,212 @@ spec: description: The name of the resource group in which the MySQL Server exists. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: Specifies the name of the MySQL Server. Changing this forces a new resource to be created. type: string + serverNameRef: + description: Reference to a Server in dbformysql to populate serverName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverNameSelector: + description: Selector for a Server in dbformysql to populate serverName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object value: description: Specifies the value of the MySQL Configuration. See the MySQL documentation for valid values. Changing this forces a new resource to be created. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + name: + description: Specifies the name of the MySQL Configuration, which + needs to be a valid MySQL configuration name. Changing this + forces a new resource to be created. + type: string + value: + description: Specifies the value of the MySQL Configuration. See + the MySQL documentation for valid values. Changing this forces + a new resource to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -138,42 +319,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -272,14 +417,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: name is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.name) - - message: resourceGroupName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.resourceGroupName) - - message: serverName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.serverName) - - message: value is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.value) + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.value is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.value) + || (has(self.initProvider) && has(self.initProvider.value))' status: description: ConfigurationStatus defines the observed state of Configuration. properties: @@ -340,6 +485,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_databases.yaml b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_databases.yaml index ef488d2c9..0dea8c309 100644 --- a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_databases.yaml +++ b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_databases.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: databases.dbformysql.azure.kubedb.com spec: group: dbformysql.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -80,29 +80,207 @@ spec: description: The name of the resource group in which the MySQL Server exists. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: Specifies the name of the MySQL Server. Changing this forces a new resource to be created. type: string - required: - - resourceGroupName - - serverName + serverNameRef: + description: Reference to a Server in dbformysql to populate serverName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverNameSelector: + description: Selector for a Server in dbformysql to populate serverName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + charset: + description: Specifies the Charset for the MySQL Database, which + needs to be a valid MySQL Charset. Changing this forces a new + resource to be created. + type: string + collation: + description: Specifies the Collation for the MySQL Database, which + needs to be a valid MySQL Collation. Changing this forces a + new resource to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -141,42 +319,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -275,10 +417,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: charset is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.charset) - - message: collation is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.collation) + - message: spec.forProvider.charset is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.charset) + || (has(self.initProvider) && has(self.initProvider.charset))' + - message: spec.forProvider.collation is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.collation) + || (has(self.initProvider) && has(self.initProvider.collation))' status: description: DatabaseStatus defines the observed state of Database. properties: @@ -339,6 +485,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_firewallrules.yaml b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_firewallrules.yaml index 233fa3f4f..9479790ea 100644 --- a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_firewallrules.yaml +++ b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_firewallrules.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: firewallrules.dbformysql.azure.kubedb.com spec: group: dbformysql.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -74,33 +74,209 @@ spec: description: The name of the resource group in which the MySQL Server exists. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: Specifies the name of the MySQL Server. Changing this forces a new resource to be created. type: string + serverNameRef: + description: Reference to a Server in dbformysql to populate serverName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverNameSelector: + description: Selector for a Server in dbformysql to populate serverName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + startIpAddress: + description: Specifies the Start IP Address associated with this + Firewall Rule. + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + endIpAddress: + description: Specifies the End IP Address associated with this + Firewall Rule. + type: string startIpAddress: description: Specifies the Start IP Address associated with this Firewall Rule. type: string - required: - - resourceGroupName - - serverName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -139,42 +315,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -273,10 +413,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: endIpAddress is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.endIpAddress) - - message: startIpAddress is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.startIpAddress) + - message: spec.forProvider.endIpAddress is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.endIpAddress) + || (has(self.initProvider) && has(self.initProvider.endIpAddress))' + - message: spec.forProvider.startIpAddress is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.startIpAddress) + || (has(self.initProvider) && has(self.initProvider.startIpAddress))' status: description: FirewallRuleStatus defines the observed state of FirewallRule. properties: @@ -335,6 +479,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibledatabases.yaml b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibledatabases.yaml index fce481d60..c16105466 100644 --- a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibledatabases.yaml +++ b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibledatabases.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: flexibledatabases.dbformysql.azure.kubedb.com spec: group: dbformysql.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -80,6 +80,81 @@ spec: description: The name of the resource group in which the MySQL Server exists. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: Specifies the name of the MySQL Flexible Server. Changing this forces a new resource to be created. @@ -157,24 +232,55 @@ spec: type: string type: object type: object - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + charset: + description: Specifies the Charset for the MySQL Database, which + needs to be a valid MySQL Charset. Changing this forces a new + resource to be created. + type: string + collation: + description: Specifies the Collation for the MySQL Database, which + needs to be a valid MySQL Collation. Changing this forces a + new resource to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -213,42 +319,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -347,10 +417,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: charset is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.charset) - - message: collation is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.collation) + - message: spec.forProvider.charset is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.charset) + || (has(self.initProvider) && has(self.initProvider.charset))' + - message: spec.forProvider.collation is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.collation) + || (has(self.initProvider) && has(self.initProvider.collation))' status: description: FlexibleDatabaseStatus defines the observed state of FlexibleDatabase. properties: @@ -411,6 +485,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibleserverconfigurations.yaml b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibleserverconfigurations.yaml index 5b707ce82..a403e327f 100644 --- a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibleserverconfigurations.yaml +++ b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibleserverconfigurations.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: flexibleserverconfigurations.dbformysql.azure.kubedb.com spec: group: dbformysql.azure.kubedb.com @@ -58,7 +58,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -73,6 +73,81 @@ spec: Flexible Server exists. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: Specifies the name of the MySQL Flexible Server. Changing this forces a new resource to be created. @@ -155,24 +230,50 @@ spec: Configuration. See the MySQL documentation for valid values. Changing this forces a new resource to be created. type: string - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + value: + description: Specifies the value of the MySQL Flexible Server + Configuration. See the MySQL documentation for valid values. + Changing this forces a new resource to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -211,42 +312,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -345,8 +410,10 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: value is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.value) + - message: spec.forProvider.value is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.value) + || (has(self.initProvider) && has(self.initProvider.value))' status: description: FlexibleServerConfigurationStatus defines the observed state of FlexibleServerConfiguration. @@ -404,6 +471,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibleserverfirewallrules.yaml b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibleserverfirewallrules.yaml index 96612689b..1cbda6214 100644 --- a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibleserverfirewallrules.yaml +++ b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibleserverfirewallrules.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: flexibleserverfirewallrules.dbformysql.azure.kubedb.com spec: group: dbformysql.azure.kubedb.com @@ -57,7 +57,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -76,6 +76,81 @@ spec: Flexible Server exists. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: Specifies the name of the MySQL Flexible Server. Changing this forces a new resource to be created. @@ -157,24 +232,53 @@ spec: description: Specifies the Start IP Address associated with this Firewall Rule. type: string - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + endIpAddress: + description: Specifies the End IP Address associated with this + Firewall Rule. + type: string + startIpAddress: + description: Specifies the Start IP Address associated with this + Firewall Rule. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -213,42 +317,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -347,10 +415,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: endIpAddress is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.endIpAddress) - - message: startIpAddress is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.startIpAddress) + - message: spec.forProvider.endIpAddress is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.endIpAddress) + || (has(self.initProvider) && has(self.initProvider.endIpAddress))' + - message: spec.forProvider.startIpAddress is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.startIpAddress) + || (has(self.initProvider) && has(self.initProvider.startIpAddress))' status: description: FlexibleServerFirewallRuleStatus defines the observed state of FlexibleServerFirewallRule. @@ -411,6 +483,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibleservers.yaml b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibleservers.yaml index 7160bab67..9fe32f400 100644 --- a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibleservers.yaml +++ b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_flexibleservers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: flexibleservers.dbformysql.azure.kubedb.com spec: group: dbformysql.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -130,6 +130,79 @@ spec: MySQL Flexible Server. Changing this forces a new MySQL Flexible Server to be created. type: string + delegatedSubnetIdRef: + description: Reference to a Subnet in network to populate delegatedSubnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + delegatedSubnetIdSelector: + description: Selector for a Subnet in network to populate delegatedSubnetId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object geoRedundantBackupEnabled: description: Should geo redundant backup enabled? Defaults to false. Changing this forces a new MySQL Flexible Server to be @@ -148,8 +221,6 @@ spec: standby Flexible Server should be located. Possible values are 1, 2 and 3. type: string - required: - - mode type: object type: array identity: @@ -167,9 +238,6 @@ spec: that should be configured on this MySQL Flexible Server. The only possible value is UserAssigned. type: string - required: - - identityIds - - type type: object type: array location: @@ -288,6 +356,81 @@ spec: Server should exist. Changing this forces a new MySQL Flexible Server to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object skuName: description: The SKU Name for the MySQL Flexible Server. type: string @@ -331,24 +474,196 @@ spec: Flexible Server should be located. Possible values are 1, 2 and 3. type: string - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + administratorLogin: + description: The Administrator login for the MySQL Flexible Server. + Required when create_mode is Default. Changing this forces a + new MySQL Flexible Server to be created. + type: string + backupRetentionDays: + description: The backup retention days for the MySQL Flexible + Server. Possible values are between 1 and 35 days. Defaults + to 7. + type: number + createMode: + description: The creation mode which can be used to restore or + replicate existing servers. Possible values are Default, PointInTimeRestore, + GeoRestore, and Replica. Changing this forces a new MySQL Flexible + Server to be created. + type: string + customerManagedKey: + description: A customer_managed_key block as defined below. + items: + properties: + geoBackupKeyVaultKeyId: + description: The ID of the geo backup Key Vault Key. It + can't cross region and need Customer Managed Key in same + region as geo backup. + type: string + geoBackupUserAssignedIdentityId: + description: The geo backup user managed identity id for + a Customer Managed Key. Should be added with identity_ids. + It can't cross region and need identity in same region + as geo backup. + type: string + keyVaultKeyId: + description: The ID of the Key Vault Key. + type: string + primaryUserAssignedIdentityId: + description: Specifies the primary user managed identity + id for a Customer Managed Key. Should be added with identity_ids. + type: string + type: object + type: array + geoRedundantBackupEnabled: + description: Should geo redundant backup enabled? Defaults to + false. Changing this forces a new MySQL Flexible Server to be + created. + type: boolean + highAvailability: + description: A high_availability block as defined below. + items: + properties: + mode: + description: The high availability mode for the MySQL Flexible + Server. Possibles values are SameZone and ZoneRedundant. + type: string + standbyAvailabilityZone: + description: Specifies the Availability Zone in which the + standby Flexible Server should be located. Possible values + are 1, 2 and 3. + type: string + type: object + type: array + identity: + description: An identity block as defined below. + items: + properties: + identityIds: + description: A list of User Assigned Managed Identity IDs + to be assigned to this MySQL Flexible Server. + items: + type: string + type: array + type: + description: Specifies the type of Managed Service Identity + that should be configured on this MySQL Flexible Server. + The only possible value is UserAssigned. + type: string + type: object + type: array + location: + description: The Azure Region where the MySQL Flexible Server + should exist. Changing this forces a new MySQL Flexible Server + to be created. + type: string + maintenanceWindow: + description: A maintenance_window block as defined below. + items: + properties: + dayOfWeek: + description: The day of week for maintenance window. Defaults + to 0. + type: number + startHour: + description: The start hour for maintenance window. Defaults + to 0. + type: number + startMinute: + description: The start minute for maintenance window. Defaults + to 0. + type: number + type: object + type: array + pointInTimeRestoreTimeInUtc: + description: The point in time to restore from creation_source_server_id + when create_mode is PointInTimeRestore. Changing this forces + a new MySQL Flexible Server to be created. + type: string + replicationRole: + description: The replication role. Possible value is None. + type: string + skuName: + description: The SKU Name for the MySQL Flexible Server. + type: string + sourceServerId: + description: The resource ID of the source MySQL Flexible Server + to be restored. Required when create_mode is PointInTimeRestore, + GeoRestore, and Replica. Changing this forces a new MySQL Flexible + Server to be created. + type: string + storage: + description: A storage block as defined below. + items: + properties: + autoGrowEnabled: + description: Should Storage Auto Grow be enabled? Defaults + to true. + type: boolean + iops: + description: The storage IOPS for the MySQL Flexible Server. + Possible values are between 360 and 20000. + type: number + sizeGb: + description: The max storage allowed for the MySQL Flexible + Server. Possible values are between 20 and 16384. + type: number + type: object + type: array + tags: + additionalProperties: + type: string + description: A mapping of tags which should be assigned to the + MySQL Flexible Server. + type: object + version: + description: The version of the MySQL Flexible Server to use. + Possible values are 5.7, and 8.0.21. Changing this forces a + new MySQL Flexible Server to be created. + type: string + zone: + description: Specifies the Availability Zone in which this MySQL + Flexible Server should be located. Possible values are 1, 2 + and 3. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -387,42 +702,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -521,8 +800,10 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: location is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.location) + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' status: description: FlexibleServerStatus defines the observed state of FlexibleServer. properties: @@ -742,6 +1023,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_servers.yaml b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_servers.yaml index 7d127a357..dff8efdf3 100644 --- a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_servers.yaml +++ b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_servers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: servers.dbformysql.azure.kubedb.com spec: group: dbformysql.azure.kubedb.com @@ -55,7 +55,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -128,8 +128,6 @@ spec: that should be configured on this MySQL Server. The only possible value is SystemAssigned. type: string - required: - - type type: object type: array infrastructureEncryptionEnabled: @@ -149,6 +147,81 @@ spec: the MySQL Server. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object restorePointInTime: description: When create_mode is PointInTimeRestore, specifies the point in time to restore from creation_source_server_id. @@ -242,24 +315,179 @@ spec: description: Specifies the version of MySQL to use. Valid values are 5.7, or 8.0. Changing this forces a new resource to be created. type: string - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + administratorLogin: + description: The Administrator login for the MySQL Server. Required + when create_mode is Default. Changing this forces a new resource + to be created. + type: string + autoGrowEnabled: + description: Enable/Disable auto-growing of the storage. Storage + auto-grow prevents your server from running out of storage and + becoming read-only. If storage auto grow is enabled, the storage + automatically grows without impacting the workload. The default + value if not explicitly specified is true. + type: boolean + backupRetentionDays: + description: Backup retention days for the server, supported values + are between 7 and 35 days. + type: number + createMode: + description: The creation mode. Can be used to restore or replicate + existing servers. Possible values are Default, Replica, GeoRestore, + and PointInTimeRestore. Defaults to Default. + type: string + creationSourceServerId: + description: For creation modes other than Default, the source + server ID to use. + type: string + geoRedundantBackupEnabled: + description: Turn Geo-redundant server backups on/off. This allows + you to choose between locally redundant or geo-redundant backup + storage in the General Purpose and Memory Optimized tiers. When + the backups are stored in geo-redundant backup storage, they + are not only stored within the region in which your server is + hosted, but are also replicated to a paired data center. This + provides better protection and ability to restore your server + in a different region in the event of a disaster. This is not + supported for the Basic tier. + type: boolean + identity: + description: An identity block as defined below. + items: + properties: + type: + description: Specifies the type of Managed Service Identity + that should be configured on this MySQL Server. The only + possible value is SystemAssigned. + type: string + type: object + type: array + infrastructureEncryptionEnabled: + description: Whether or not infrastructure is encrypted for this + server. Changing this forces a new resource to be created. + type: boolean + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + publicNetworkAccessEnabled: + description: Whether or not public network access is allowed for + this server. Defaults to true. + type: boolean + restorePointInTime: + description: When create_mode is PointInTimeRestore, specifies + the point in time to restore from creation_source_server_id. + It should be provided in RFC3339 format, e.g. 2013-11-08T22:00:40Z. + type: string + skuName: + description: Specifies the SKU Name for this MySQL Server. The + name of the SKU, follows the tier + family + cores pattern (e.g. + B_Gen4_1, GP_Gen5_8). For more information see the product documentation. + Possible values are B_Gen4_1, B_Gen4_2, B_Gen5_1, B_Gen5_2, + GP_Gen4_2, GP_Gen4_4, GP_Gen4_8, GP_Gen4_16, GP_Gen4_32, GP_Gen5_2, + GP_Gen5_4, GP_Gen5_8, GP_Gen5_16, GP_Gen5_32, GP_Gen5_64, MO_Gen5_2, + MO_Gen5_4, MO_Gen5_8, MO_Gen5_16 and MO_Gen5_32. + type: string + sslEnforcementEnabled: + description: Specifies if SSL should be enforced on connections. + Possible values are true and false. + type: boolean + sslMinimalTlsVersionEnforced: + description: The minimum TLS version to support on the sever. + Possible values are TLSEnforcementDisabled, TLS1_0, TLS1_1, + and TLS1_2. Defaults to TLS1_2. + type: string + storageMb: + description: Max storage allowed for a server. Possible values + are between 5120 MB(5GB) and 1048576 MB(1TB) for the Basic SKU + and between 5120 MB(5GB) and 16777216 MB(16TB) for General Purpose/Memory + Optimized SKUs. For more information see the product documentation. + type: number + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + threatDetectionPolicy: + description: Threat detection policy configuration, known in the + API as Server Security Alerts Policy. The threat_detection_policy + block supports fields documented below. + items: + properties: + disabledAlerts: + description: Specifies a list of alerts which should be + disabled. Possible values are Sql_Injection, Sql_Injection_Vulnerability, + Access_Anomaly, Data_Exfiltration and Unsafe_Action. + items: + type: string + type: array + emailAccountAdmins: + description: Should the account administrators be emailed + when this alert is triggered? + type: boolean + emailAddresses: + description: A list of email addresses which alerts should + be sent to. + items: + type: string + type: array + enabled: + description: Is the policy enabled? + type: boolean + retentionDays: + description: Specifies the number of days to keep in the + Threat Detection audit logs. + type: number + storageEndpoint: + description: Specifies the blob storage endpoint (e.g. https://example.blob.core.windows.net). + This blob storage will hold all Threat Detection audit + logs. + type: string + type: object + type: array + version: + description: Specifies the version of MySQL to use. Valid values + are 5.7, or 8.0. Changing this forces a new resource to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -298,42 +526,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -432,14 +624,22 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: location is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.location) - - message: skuName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.skuName) - - message: sslEnforcementEnabled is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.sslEnforcementEnabled) - - message: version is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.version) + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + - message: spec.forProvider.skuName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.skuName) + || (has(self.initProvider) && has(self.initProvider.skuName))' + - message: spec.forProvider.sslEnforcementEnabled is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.sslEnforcementEnabled) + || (has(self.initProvider) && has(self.initProvider.sslEnforcementEnabled))' + - message: spec.forProvider.version is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.version) + || (has(self.initProvider) && has(self.initProvider.version))' status: description: ServerStatus defines the observed state of Server. properties: @@ -632,6 +832,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_virtualnetworkrules.yaml b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_virtualnetworkrules.yaml index 5cbfbf314..fc914e04e 100644 --- a/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_virtualnetworkrules.yaml +++ b/charts/kubedb-provider-azure/crds/dbformysql.azure.kubedb.com_virtualnetworkrules.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: virtualnetworkrules.dbformysql.azure.kubedb.com spec: group: dbformysql.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,34 +70,274 @@ spec: description: The name of the resource group where the MySQL server resides. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: The name of the SQL Server to which this MySQL virtual network rule will be applied to. Changing this forces a new resource to be created. type: string + serverNameRef: + description: Reference to a Server in dbformysql to populate serverName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverNameSelector: + description: Selector for a Server in dbformysql to populate serverName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object subnetId: description: The ID of the subnet that the MySQL server will be connected to. type: string - required: - - resourceGroupName - - serverName + subnetIdRef: + description: Reference to a Subnet in network to populate subnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + subnetIdSelector: + description: Selector for a Subnet in network to populate subnetId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -136,42 +376,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -269,9 +473,6 @@ spec: required: - forProvider type: object - x-kubernetes-validations: - - message: subnetId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.subnetId) status: description: VirtualNetworkRuleStatus defines the observed state of VirtualNetworkRule. properties: @@ -327,6 +528,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_activedirectoryadministrators.yaml b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_activedirectoryadministrators.yaml index 92bb0babc..d2093309b 100644 --- a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_activedirectoryadministrators.yaml +++ b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_activedirectoryadministrators.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: activedirectoryadministrators.dbforpostgresql.azure.kubedb.com spec: group: dbforpostgresql.azure.kubedb.com @@ -57,7 +57,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -79,6 +79,81 @@ spec: description: The name of the resource group for the PostgreSQL server. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: The name of the PostgreSQL Server on which to set the administrator. Changing this forces a new resource to be @@ -160,24 +235,56 @@ spec: tenantId: description: The Azure Tenant ID type: string - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + login: + description: The login name of the principal to set as the server + administrator + type: string + objectId: + description: The ID of the principal to set as the server administrator. + For a managed identity this should be the Client ID of the identity. + type: string + tenantId: + description: The Azure Tenant ID + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -216,42 +323,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -350,12 +421,18 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: login is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.login) - - message: objectId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.objectId) - - message: tenantId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.tenantId) + - message: spec.forProvider.login is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.login) + || (has(self.initProvider) && has(self.initProvider.login))' + - message: spec.forProvider.objectId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.objectId) + || (has(self.initProvider) && has(self.initProvider.objectId))' + - message: spec.forProvider.tenantId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.tenantId) + || (has(self.initProvider) && has(self.initProvider.tenantId))' status: description: ActiveDirectoryAdministratorStatus defines the observed state of ActiveDirectoryAdministrator. @@ -419,6 +496,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_configurations.yaml b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_configurations.yaml index 1dfc6b30f..46363cbd3 100644 --- a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_configurations.yaml +++ b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_configurations.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: configurations.dbforpostgresql.azure.kubedb.com spec: group: dbforpostgresql.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -75,6 +75,81 @@ spec: description: The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created. @@ -158,21 +233,54 @@ spec: this forces a new resource to be created. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + name: + description: Specifies the name of the PostgreSQL Configuration, + which needs to be a valid PostgreSQL configuration name. Changing + this forces a new resource to be created. + type: string + value: + description: Specifies the value of the PostgreSQL Configuration. + See the PostgreSQL documentation for valid values. Changing + this forces a new resource to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -211,42 +319,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -345,12 +417,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: name is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.name) - - message: resourceGroupName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.resourceGroupName) - - message: value is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.value) + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.value is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.value) + || (has(self.initProvider) && has(self.initProvider.value))' status: description: ConfigurationStatus defines the observed state of Configuration. properties: @@ -411,6 +485,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_databases.yaml b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_databases.yaml index ae1357a31..3eef77869 100644 --- a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_databases.yaml +++ b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_databases.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: databases.dbforpostgresql.azure.kubedb.com spec: group: dbforpostgresql.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -81,6 +81,81 @@ spec: description: The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created. @@ -158,24 +233,56 @@ spec: type: string type: object type: object - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + charset: + description: Specifies the Charset for the PostgreSQL Database, + which needs to be a valid PostgreSQL Charset. Changing this + forces a new resource to be created. + type: string + collation: + description: Specifies the Collation for the PostgreSQL Database, + which needs to be a valid PostgreSQL Collation. Note that Microsoft + uses different notation - en-US instead of en_US. Changing this + forces a new resource to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -214,42 +321,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -348,10 +419,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: charset is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.charset) - - message: collation is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.collation) + - message: spec.forProvider.charset is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.charset) + || (has(self.initProvider) && has(self.initProvider.charset))' + - message: spec.forProvider.collation is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.collation) + || (has(self.initProvider) && has(self.initProvider.collation))' status: description: DatabaseStatus defines the observed state of Database. properties: @@ -413,6 +488,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_firewallrules.yaml b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_firewallrules.yaml index a3dab168d..235eec709 100644 --- a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_firewallrules.yaml +++ b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_firewallrules.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: firewallrules.dbforpostgresql.azure.kubedb.com spec: group: dbforpostgresql.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -74,6 +74,81 @@ spec: description: The name of the resource group in which the PostgreSQL Server exists. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: Specifies the name of the PostgreSQL Server. Changing this forces a new resource to be created. @@ -155,24 +230,53 @@ spec: description: Specifies the Start IP Address associated with this Firewall Rule. Changing this forces a new resource to be created. type: string - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + endIpAddress: + description: Specifies the End IP Address associated with this + Firewall Rule. Changing this forces a new resource to be created. + type: string + startIpAddress: + description: Specifies the Start IP Address associated with this + Firewall Rule. Changing this forces a new resource to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -211,42 +315,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -345,10 +413,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: endIpAddress is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.endIpAddress) - - message: startIpAddress is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.startIpAddress) + - message: spec.forProvider.endIpAddress is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.endIpAddress) + || (has(self.initProvider) && has(self.initProvider.endIpAddress))' + - message: spec.forProvider.startIpAddress is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.startIpAddress) + || (has(self.initProvider) && has(self.initProvider.startIpAddress))' status: description: FirewallRuleStatus defines the observed state of FirewallRule. properties: @@ -407,6 +479,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleserverconfigurations.yaml b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleserverconfigurations.yaml index 4313f721c..b2f8711dc 100644 --- a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleserverconfigurations.yaml +++ b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleserverconfigurations.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: flexibleserverconfigurations.dbforpostgresql.azure.kubedb.com spec: group: dbforpostgresql.azure.kubedb.com @@ -58,7 +58,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -156,21 +156,53 @@ spec: See the PostgreSQL documentation for valid values. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + name: + description: Specifies the name of the PostgreSQL Configuration, + which needs to be a valid PostgreSQL configuration name. Changing + this forces a new resource to be created. + type: string + value: + description: Specifies the value of the PostgreSQL Configuration. + See the PostgreSQL documentation for valid values. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -209,42 +241,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -343,10 +339,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: name is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.name) - - message: value is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.value) + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.value is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.value) + || (has(self.initProvider) && has(self.initProvider.value))' status: description: FlexibleServerConfigurationStatus defines the observed state of FlexibleServerConfiguration. @@ -404,6 +404,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleserverdatabases.yaml b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleserverdatabases.yaml index a767e7e2b..9aa707b0f 100644 --- a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleserverdatabases.yaml +++ b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleserverdatabases.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: flexibleserverdatabases.dbforpostgresql.azure.kubedb.com spec: group: dbforpostgresql.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -158,21 +158,56 @@ spec: type: object type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + charset: + description: Specifies the Charset for the Azure PostgreSQL Flexible + Server Database, which needs to be a valid PostgreSQL Charset. + Defaults to UTF8. Changing this forces a new Azure PostgreSQL + Flexible Server Database to be created. + type: string + collation: + description: Specifies the Collation for the Azure PostgreSQL + Flexible Server Database, which needs to be a valid PostgreSQL + Collation. Defaults to en_US.utf8. Changing this forces a new + Azure PostgreSQL Flexible Server Database to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -211,42 +246,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -405,6 +404,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleserverfirewallrules.yaml b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleserverfirewallrules.yaml index 86fb80ee0..d5d5fb27d 100644 --- a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleserverfirewallrules.yaml +++ b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleserverfirewallrules.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: flexibleserverfirewallrules.dbforpostgresql.azure.kubedb.com spec: group: dbforpostgresql.azure.kubedb.com @@ -57,7 +57,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -155,21 +155,52 @@ spec: Flexible Server Firewall Rule. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + endIpAddress: + description: The End IP Address associated with this PostgreSQL + Flexible Server Firewall Rule. + type: string + startIpAddress: + description: The Start IP Address associated with this PostgreSQL + Flexible Server Firewall Rule. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -208,42 +239,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -342,10 +337,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: endIpAddress is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.endIpAddress) - - message: startIpAddress is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.startIpAddress) + - message: spec.forProvider.endIpAddress is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.endIpAddress) + || (has(self.initProvider) && has(self.initProvider.endIpAddress))' + - message: spec.forProvider.startIpAddress is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.startIpAddress) + || (has(self.initProvider) && has(self.initProvider.startIpAddress))' status: description: FlexibleServerFirewallRuleStatus defines the observed state of FlexibleServerFirewallRule. @@ -404,6 +403,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleservers.yaml b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleservers.yaml index b19b79b1c..b38479475 100644 --- a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleservers.yaml +++ b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_flexibleservers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: flexibleservers.dbforpostgresql.azure.kubedb.com spec: group: dbforpostgresql.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -143,6 +143,79 @@ spec: Changing this forces a new PostgreSQL Flexible Server to be created. type: string + delegatedSubnetIdRef: + description: Reference to a Subnet in network to populate delegatedSubnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + delegatedSubnetIdSelector: + description: Selector for a Subnet in network to populate delegatedSubnetId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object geoRedundantBackupEnabled: description: Is Geo-Redundant backup enabled on the PostgreSQL Flexible Server. Defaults to false. Changing this forces a new @@ -160,8 +233,6 @@ spec: description: Specifies the Availability Zone in which the standby Flexible Server should be located. type: string - required: - - mode type: object type: array identity: @@ -180,9 +251,6 @@ spec: that should be configured on this PostgreSQL Flexible Server. The only possible value is UserAssigned. type: string - required: - - identityIds - - type type: object type: array location: @@ -219,6 +287,81 @@ spec: Flexible Server. Changing this forces a new PostgreSQL Flexible Server to be created. type: string + privateDnsZoneIdRef: + description: Reference to a PrivateDNSZone in network to populate + privateDnsZoneId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + privateDnsZoneIdSelector: + description: Selector for a PrivateDNSZone in network to populate + privateDnsZoneId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object replicationRole: description: The replication role for the PostgreSQL Flexible Server. Possible value is None. @@ -228,6 +371,81 @@ spec: Flexible Server should exist. Changing this forces a new PostgreSQL Flexible Server to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object skuName: description: The SKU Name for the PostgreSQL Flexible Server. The name of the SKU, follows the tier + name pattern (e.g. B_Standard_B1ms, @@ -260,24 +478,197 @@ spec: description: Specifies the Availability Zone in which the PostgreSQL Flexible Server should be located. type: string - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + administratorLogin: + description: The Administrator login for the PostgreSQL Flexible + Server. Required when create_mode is Default and authentication.password_auth_enabled + is true. + type: string + authentication: + description: An authentication block as defined below. + items: + properties: + activeDirectoryAuthEnabled: + description: Whether or not Active Directory authentication + is allowed to access the PostgreSQL Flexible Server. Defaults + to false. + type: boolean + passwordAuthEnabled: + description: Whether or not password authentication is allowed + to access the PostgreSQL Flexible Server. Defaults to + true. + type: boolean + tenantId: + description: The Tenant ID of the Azure Active Directory + which is used by the Active Directory authentication. + active_directory_auth_enabled must be set to true. + type: string + type: object + type: array + backupRetentionDays: + description: The backup retention days for the PostgreSQL Flexible + Server. Possible values are between 7 and 35 days. + type: number + createMode: + description: The creation mode which can be used to restore or + replicate existing servers. Possible values are Default, PointInTimeRestore, + Replica and Update. Changing this forces a new PostgreSQL Flexible + Server to be created. + type: string + customerManagedKey: + description: A customer_managed_key block as defined below. Changing + this forces a new resource to be created. + items: + properties: + keyVaultKeyId: + description: The ID of the Key Vault Key. + type: string + primaryUserAssignedIdentityId: + description: Specifies the primary user managed identity + id for a Customer Managed Key. Should be added with identity_ids. + type: string + type: object + type: array + geoRedundantBackupEnabled: + description: Is Geo-Redundant backup enabled on the PostgreSQL + Flexible Server. Defaults to false. Changing this forces a new + PostgreSQL Flexible Server to be created. + type: boolean + highAvailability: + description: A high_availability block as defined below. + items: + properties: + mode: + description: The high availability mode for the PostgreSQL + Flexible Server. Possible value are SameZone or ZoneRedundant. + type: string + standbyAvailabilityZone: + description: Specifies the Availability Zone in which the + standby Flexible Server should be located. + type: string + type: object + type: array + identity: + description: An identity block as defined below. + items: + properties: + identityIds: + description: A list of User Assigned Managed Identity IDs + to be assigned to this PostgreSQL Flexible Server. Required + if used together with customer_managed_key block. + items: + type: string + type: array + type: + description: Specifies the type of Managed Service Identity + that should be configured on this PostgreSQL Flexible + Server. The only possible value is UserAssigned. + type: string + type: object + type: array + location: + description: The Azure Region where the PostgreSQL Flexible Server + should exist. Changing this forces a new PostgreSQL Flexible + Server to be created. + type: string + maintenanceWindow: + description: A maintenance_window block as defined below. + items: + properties: + dayOfWeek: + description: The day of week for maintenance window, where + the week starts on a Sunday, i.e. Sunday = 0, Monday = + 1. Defaults to 0. + type: number + startHour: + description: The start hour for maintenance window. Defaults + to 0. + type: number + startMinute: + description: The start minute for maintenance window. Defaults + to 0. + type: number + type: object + type: array + pointInTimeRestoreTimeInUtc: + description: The point in time to restore from source_server_id + when create_mode is PointInTimeRestore. Changing this forces + a new PostgreSQL Flexible Server to be created. + type: string + replicationRole: + description: The replication role for the PostgreSQL Flexible + Server. Possible value is None. + type: string + skuName: + description: The SKU Name for the PostgreSQL Flexible Server. + The name of the SKU, follows the tier + name pattern (e.g. B_Standard_B1ms, + GP_Standard_D2s_v3, MO_Standard_E4s_v3). + type: string + sourceServerId: + description: The resource ID of the source PostgreSQL Flexible + Server to be restored. Required when create_mode is PointInTimeRestore + or Replica. Changing this forces a new PostgreSQL Flexible Server + to be created. + type: string + storageMb: + description: The max storage allowed for the PostgreSQL Flexible + Server. Possible values are 32768, 65536, 131072, 262144, 524288, + 1048576, 2097152, 4194304, 8388608, and 16777216. + type: number + tags: + additionalProperties: + type: string + description: A mapping of tags which should be assigned to the + PostgreSQL Flexible Server. + type: object + version: + description: The version of PostgreSQL Flexible Server to use. + Possible values are 11,12, 13, 14 and 15. Required when create_mode + is Default. Changing this forces a new PostgreSQL Flexible Server + to be created. + type: string + zone: + description: Specifies the Availability Zone in which the PostgreSQL + Flexible Server should be located. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -316,42 +707,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -450,8 +805,10 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: location is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.location) + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' status: description: FlexibleServerStatus defines the observed state of FlexibleServer. properties: @@ -670,6 +1027,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_serverkeys.yaml b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_serverkeys.yaml index a5ac1c27c..c5645b3a3 100644 --- a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_serverkeys.yaml +++ b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_serverkeys.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: serverkeys.dbforpostgresql.azure.kubedb.com spec: group: dbforpostgresql.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -220,21 +220,43 @@ spec: type: object type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -273,42 +295,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -455,6 +441,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_servers.yaml b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_servers.yaml index ab250ec5d..5789fae52 100644 --- a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_servers.yaml +++ b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_servers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: servers.dbforpostgresql.azure.kubedb.com spec: group: dbforpostgresql.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -130,8 +130,6 @@ spec: that should be configured on this PostgreSQL Server. The only possible value is SystemAssigned. type: string - required: - - type type: object type: array infrastructureEncryptionEnabled: @@ -151,6 +149,81 @@ spec: the PostgreSQL Server. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object restorePointInTime: description: When create_mode is PointInTimeRestore the point in time to restore from creation_source_server_id. It should @@ -245,24 +318,181 @@ spec: values are 9.5, 9.6, 10, 10.0, 10.2 and 11. Changing this forces a new resource to be created. type: string - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + administratorLogin: + description: The Administrator login for the PostgreSQL Server. + Required when create_mode is Default. Changing this forces a + new resource to be created. + type: string + autoGrowEnabled: + description: Enable/Disable auto-growing of the storage. Storage + auto-grow prevents your server from running out of storage and + becoming read-only. If storage auto grow is enabled, the storage + automatically grows without impacting the workload. The default + value if not explicitly specified is true. + type: boolean + backupRetentionDays: + description: Backup retention days for the server, supported values + are between 7 and 35 days. + type: number + createMode: + description: The creation mode. Can be used to restore or replicate + existing servers. Possible values are Default, Replica, GeoRestore, + and PointInTimeRestore. Defaults to Default. + type: string + creationSourceServerId: + description: For creation modes other than Default, the source + server ID to use. + type: string + geoRedundantBackupEnabled: + description: Turn Geo-redundant server backups on/off. This allows + you to choose between locally redundant or geo-redundant backup + storage in the General Purpose and Memory Optimized tiers. When + the backups are stored in geo-redundant backup storage, they + are not only stored within the region in which your server is + hosted, but are also replicated to a paired data center. This + provides better protection and ability to restore your server + in a different region in the event of a disaster. This is not + support for the Basic tier. Changing this forces a new resource + to be created. + type: boolean + identity: + description: An identity block as defined below. + items: + properties: + type: + description: Specifies the type of Managed Service Identity + that should be configured on this PostgreSQL Server. The + only possible value is SystemAssigned. + type: string + type: object + type: array + infrastructureEncryptionEnabled: + description: Whether or not infrastructure is encrypted for this + server. Changing this forces a new resource to be created. + type: boolean + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + publicNetworkAccessEnabled: + description: Whether or not public network access is allowed for + this server. Defaults to true. + type: boolean + restorePointInTime: + description: When create_mode is PointInTimeRestore the point + in time to restore from creation_source_server_id. It should + be provided in RFC3339 format, e.g. 2013-11-08T22:00:40Z. + type: string + skuName: + description: Specifies the SKU Name for this PostgreSQL Server. + The name of the SKU, follows the tier + family + cores pattern + (e.g. B_Gen4_1, GP_Gen5_8). For more information see the product + documentation. Possible values are B_Gen4_1, B_Gen4_2, B_Gen5_1, + B_Gen5_2, GP_Gen4_2, GP_Gen4_4, GP_Gen4_8, GP_Gen4_16, GP_Gen4_32, + GP_Gen5_2, GP_Gen5_4, GP_Gen5_8, GP_Gen5_16, GP_Gen5_32, GP_Gen5_64, + MO_Gen5_2, MO_Gen5_4, MO_Gen5_8, MO_Gen5_16 and MO_Gen5_32. + type: string + sslEnforcementEnabled: + description: Specifies if SSL should be enforced on connections. + Possible values are true and false. + type: boolean + sslMinimalTlsVersionEnforced: + description: The minimum TLS version to support on the sever. + Possible values are TLSEnforcementDisabled, TLS1_0, TLS1_1, + and TLS1_2. Defaults to TLS1_2. + type: string + storageMb: + description: Max storage allowed for a server. Possible values + are between 5120 MB(5GB) and 1048576 MB(1TB) for the Basic SKU + and between 5120 MB(5GB) and 16777216 MB(16TB) for General Purpose/Memory + Optimized SKUs. For more information see the product documentation. + type: number + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + threatDetectionPolicy: + description: Threat detection policy configuration, known in the + API as Server Security Alerts Policy. The threat_detection_policy + block supports fields documented below. + items: + properties: + disabledAlerts: + description: Specifies a list of alerts which should be + disabled. Possible values are Sql_Injection, Sql_Injection_Vulnerability, + Access_Anomaly, Data_Exfiltration and Unsafe_Action. + items: + type: string + type: array + emailAccountAdmins: + description: Should the account administrators be emailed + when this alert is triggered? + type: boolean + emailAddresses: + description: A list of email addresses which alerts should + be sent to. + items: + type: string + type: array + enabled: + description: Is the policy enabled? + type: boolean + retentionDays: + description: Specifies the number of days to keep in the + Threat Detection audit logs. + type: number + storageEndpoint: + description: Specifies the blob storage endpoint (e.g. https://example.blob.core.windows.net). + This blob storage will hold all Threat Detection audit + logs. + type: string + type: object + type: array + version: + description: Specifies the version of PostgreSQL to use. Valid + values are 9.5, 9.6, 10, 10.0, 10.2 and 11. Changing this forces + a new resource to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -301,42 +531,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -435,14 +629,22 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: location is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.location) - - message: skuName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.skuName) - - message: sslEnforcementEnabled is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.sslEnforcementEnabled) - - message: version is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.version) + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + - message: spec.forProvider.skuName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.skuName) + || (has(self.initProvider) && has(self.initProvider.skuName))' + - message: spec.forProvider.sslEnforcementEnabled is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.sslEnforcementEnabled) + || (has(self.initProvider) && has(self.initProvider.sslEnforcementEnabled))' + - message: spec.forProvider.version is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.version) + || (has(self.initProvider) && has(self.initProvider.version))' status: description: ServerStatus defines the observed state of Server. properties: @@ -637,6 +839,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_virtualnetworkrules.yaml b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_virtualnetworkrules.yaml index 631c316f1..37f654059 100644 --- a/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_virtualnetworkrules.yaml +++ b/charts/kubedb-provider-azure/crds/dbforpostgresql.azure.kubedb.com_virtualnetworkrules.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: virtualnetworkrules.dbforpostgresql.azure.kubedb.com spec: group: dbforpostgresql.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -74,6 +74,81 @@ spec: description: The name of the resource group where the PostgreSQL server resides. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object serverName: description: The name of the SQL Server to which this PostgreSQL virtual network rule will be applied to. Changing this forces @@ -156,24 +231,122 @@ spec: description: The ID of the subnet that the PostgreSQL server will be connected to. type: string - required: - - resourceGroupName + subnetIdRef: + description: Reference to a Subnet in network to populate subnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + subnetIdSelector: + description: Selector for a Subnet in network to populate subnetId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + ignoreMissingVnetServiceEndpoint: + description: Should the Virtual Network Rule be created before + the Subnet has the Virtual Network Service Endpoint enabled? + type: boolean + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -212,42 +385,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -345,9 +482,6 @@ spec: required: - forProvider type: object - x-kubernetes-validations: - - message: subnetId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.subnetId) status: description: VirtualNetworkRuleStatus defines the observed state of VirtualNetworkRule. properties: @@ -407,6 +541,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/keyvault.azure.kubedb.com_keys.yaml b/charts/kubedb-provider-azure/crds/keyvault.azure.kubedb.com_keys.yaml index 307a8bc09..93d1ac0d4 100644 --- a/charts/kubedb-provider-azure/crds/keyvault.azure.kubedb.com_keys.yaml +++ b/charts/kubedb-provider-azure/crds/keyvault.azure.kubedb.com_keys.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: keys.keyvault.azure.kubedb.com spec: group: keyvault.azure.kubedb.com @@ -55,7 +55,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -207,21 +207,108 @@ spec: description: A mapping of tags to assign to the resource. type: object type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + curve: + description: Specifies the curve to use when creating an EC key. + Possible values are P-256, P-256K, P-384, and P-521. This field + will be required in a future release if key_type is EC or EC-HSM. + The API will default to P-256 if nothing is specified. Changing + this forces a new resource to be created. + type: string + expirationDate: + description: Expiration UTC datetime (Y-m-d'T'H:M:S'Z'). + type: string + keyOpts: + description: 'A list of JSON web key operations. Possible values + include: decrypt, encrypt, sign, unwrapKey, verify and wrapKey. + Please note these values are case sensitive.' + items: + type: string + type: array + keySize: + description: 'Specifies the Size of the RSA key to create in bytes. + For example, 1024 or 2048. Note: This field is required if key_type + is RSA or RSA-HSM. Changing this forces a new resource to be + created.' + type: number + keyType: + description: Specifies the Key Type to use for this Key Vault + Key. Possible values are EC (Elliptic Curve), EC-HSM, RSA and + RSA-HSM. Changing this forces a new resource to be created. + type: string + notBeforeDate: + description: Key not usable before the provided UTC datetime (Y-m-d'T'H:M:S'Z'). + type: string + rotationPolicy: + description: A rotation_policy block as defined below. + items: + properties: + automatic: + description: An automatic block as defined below. + items: + properties: + timeAfterCreation: + description: Rotate automatically at a duration after + create as an ISO 8601 duration. + type: string + timeBeforeExpiry: + description: Rotate automatically at a duration before + expiry as an ISO 8601 duration. + type: string + type: object + type: array + expireAfter: + description: Expire a Key Vault Key after given duration + as an ISO 8601 duration. + type: string + notifyBeforeExpiry: + description: Notify at a given duration before expiry as + an ISO 8601 duration. Default is P30D. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -260,42 +347,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -394,10 +445,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: keyOpts is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.keyOpts) - - message: keyType is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.keyType) + - message: spec.forProvider.keyOpts is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.keyOpts) + || (has(self.initProvider) && has(self.initProvider.keyOpts))' + - message: spec.forProvider.keyType is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.keyType) + || (has(self.initProvider) && has(self.initProvider.keyType))' status: description: KeyStatus defines the observed state of Key. properties: @@ -543,6 +598,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/keyvault.azure.kubedb.com_vaults.yaml b/charts/kubedb-provider-azure/crds/keyvault.azure.kubedb.com_vaults.yaml index 89ba5a340..2dfcdaff5 100644 --- a/charts/kubedb-provider-azure/crds/keyvault.azure.kubedb.com_vaults.yaml +++ b/charts/kubedb-provider-azure/crds/keyvault.azure.kubedb.com_vaults.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: vaults.keyvault.azure.kubedb.com spec: group: keyvault.azure.kubedb.com @@ -55,7 +55,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -78,8 +78,6 @@ spec: phone: description: Phone number of the contact. type: string - required: - - email type: object type: array enableRbacAuthorization: @@ -128,9 +126,6 @@ spec: items: type: string type: array - required: - - bypass - - defaultAction type: object type: array publicNetworkAccessEnabled: @@ -144,6 +139,81 @@ spec: description: The name of the resource group in which to create the Key Vault. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object skuName: description: The Name of the SKU used for this Key Vault. Possible values are standard and premium. @@ -162,24 +232,133 @@ spec: description: The Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. type: string - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + contact: + description: One or more contact block as defined below. + items: + properties: + email: + description: E-mail address of the contact. + type: string + name: + description: Name of the contact. + type: string + phone: + description: Phone number of the contact. + type: string + type: object + type: array + enableRbacAuthorization: + description: Boolean flag to specify whether Azure Key Vault uses + Role Based Access Control (RBAC) for authorization of data actions. + type: boolean + enabledForDeployment: + description: Boolean flag to specify whether Azure Virtual Machines + are permitted to retrieve certificates stored as secrets from + the key vault. + type: boolean + enabledForDiskEncryption: + description: Boolean flag to specify whether Azure Disk Encryption + is permitted to retrieve secrets from the vault and unwrap keys. + type: boolean + enabledForTemplateDeployment: + description: Boolean flag to specify whether Azure Resource Manager + is permitted to retrieve secrets from the key vault. + type: boolean + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + networkAcls: + description: A network_acls block as defined below. + items: + properties: + bypass: + description: Specifies which traffic can bypass the network + rules. Possible values are AzureServices and None. + type: string + defaultAction: + description: The Default Action to use when no rules match + from ip_rules / virtual_network_subnet_ids. Possible values + are Allow and Deny. + type: string + ipRules: + description: One or more IP Addresses, or CIDR Blocks which + should be able to access the Key Vault. + items: + type: string + type: array + virtualNetworkSubnetIds: + description: One or more Subnet IDs which should be able + to access this Key Vault. + items: + type: string + type: array + type: object + type: array + publicNetworkAccessEnabled: + description: Whether public network access is allowed for this + Key Vault. Defaults to true. + type: boolean + purgeProtectionEnabled: + description: Is Purge Protection enabled for this Key Vault? + type: boolean + skuName: + description: The Name of the SKU used for this Key Vault. Possible + values are standard and premium. + type: string + softDeleteRetentionDays: + description: The number of days that items should be retained + for once soft-deleted. This value can be between 7 and 90 (the + default) days. + type: number + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + tenantId: + description: The Azure Active Directory tenant ID that should + be used for authenticating requests to the key vault. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -218,42 +397,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -352,12 +495,18 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: location is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.location) - - message: skuName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.skuName) - - message: tenantId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.tenantId) + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + - message: spec.forProvider.skuName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.skuName) + || (has(self.initProvider) && has(self.initProvider.skuName))' + - message: spec.forProvider.tenantId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.tenantId) + || (has(self.initProvider) && has(self.initProvider.tenantId))' status: description: VaultStatus defines the observed state of Vault. properties: @@ -551,6 +700,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_privatednszones.yaml b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_privatednszones.yaml index 15d037c8f..b1e304e1c 100644 --- a/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_privatednszones.yaml +++ b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_privatednszones.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: privatednszones.network.azure.kubedb.com spec: group: network.azure.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -70,6 +70,81 @@ spec: description: Specifies the resource group where the resource exists. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object soaRecord: description: An soa_record block as defined below. Changing this forces a new resource to be created. @@ -104,8 +179,6 @@ spec: description: The Time To Live of the SOA Record in seconds. Defaults to 3600. type: number - required: - - email type: object type: array tags: @@ -113,24 +186,86 @@ spec: type: string description: A mapping of tags to assign to the resource. type: object - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + soaRecord: + description: An soa_record block as defined below. Changing this + forces a new resource to be created. + items: + properties: + email: + description: The email contact for the SOA record. + type: string + expireTime: + description: The expire time for the SOA record. Defaults + to 2419200. + type: number + minimumTtl: + description: The minimum Time To Live for the SOA record. + By convention, it is used to determine the negative caching + duration. Defaults to 10. + type: number + refreshTime: + description: The refresh time for the SOA record. Defaults + to 3600. + type: number + retryTime: + description: The retry time for the SOA record. Defaults + to 300. + type: number + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the Record Set. + type: object + ttl: + description: The Time To Live of the SOA Record in seconds. + Defaults to 3600. + type: number + type: object + type: array + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -169,42 +304,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -416,6 +515,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_privatednszonevirtualnetworklinks.yaml b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_privatednszonevirtualnetworklinks.yaml new file mode 100644 index 000000000..928c7f62a --- /dev/null +++ b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_privatednszonevirtualnetworklinks.yaml @@ -0,0 +1,576 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: privatednszonevirtualnetworklinks.network.azure.kubedb.com +spec: + group: network.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: PrivateDNSZoneVirtualNetworkLink + listKind: PrivateDNSZoneVirtualNetworkLinkList + plural: privatednszonevirtualnetworklinks + singular: privatednszonevirtualnetworklink + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: PrivateDNSZoneVirtualNetworkLink is the Schema for the PrivateDNSZoneVirtualNetworkLinks + API. Manages a Private DNS Zone Virtual Network Link. + 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: PrivateDNSZoneVirtualNetworkLinkSpec defines the desired + state of PrivateDNSZoneVirtualNetworkLink + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + privateDnsZoneName: + description: The name of the Private DNS zone (without a terminating + dot). Changing this forces a new resource to be created. + type: string + privateDnsZoneNameRef: + description: Reference to a PrivateDNSZone in network to populate + privateDnsZoneName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + privateDnsZoneNameSelector: + description: Selector for a PrivateDNSZone in network to populate + privateDnsZoneName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + registrationEnabled: + description: Is auto-registration of virtual machine records in + the virtual network in the Private DNS zone enabled? Defaults + to false. + type: boolean + resourceGroupName: + description: Specifies the resource group where the Private DNS + Zone exists. Changing this forces a new resource to be created. + type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + virtualNetworkId: + description: The ID of the Virtual Network that should be linked + to the DNS Zone. Changing this forces a new resource to be created. + type: string + virtualNetworkIdRef: + description: Reference to a VirtualNetwork in network to populate + virtualNetworkId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + virtualNetworkIdSelector: + description: Selector for a VirtualNetwork in network to populate + virtualNetworkId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + registrationEnabled: + description: Is auto-registration of virtual machine records in + the virtual network in the Private DNS zone enabled? Defaults + to false. + type: boolean + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: PrivateDNSZoneVirtualNetworkLinkStatus defines the observed + state of PrivateDNSZoneVirtualNetworkLink. + properties: + atProvider: + properties: + id: + description: The ID of the Private DNS Zone Virtual Network Link. + type: string + privateDnsZoneName: + description: The name of the Private DNS zone (without a terminating + dot). Changing this forces a new resource to be created. + type: string + registrationEnabled: + description: Is auto-registration of virtual machine records in + the virtual network in the Private DNS zone enabled? Defaults + to false. + type: boolean + resourceGroupName: + description: Specifies the resource group where the Private DNS + Zone exists. Changing this forces a new resource to be created. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + virtualNetworkId: + description: The ID of the Virtual Network that should be linked + to the DNS Zone. Changing this forces a new resource to be created. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_routetables.yaml b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_routetables.yaml new file mode 100644 index 000000000..de1d224cc --- /dev/null +++ b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_routetables.yaml @@ -0,0 +1,503 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: routetables.network.azure.kubedb.com +spec: + group: network.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: RouteTable + listKind: RouteTableList + plural: routetables + singular: routetable + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: RouteTable is the Schema for the RouteTables API. Manages a Route + Table + 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: RouteTableSpec defines the desired state of RouteTable + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + disableBgpRoutePropagation: + description: Boolean flag which controls propagation of routes + learned by BGP on that route table. True means disable. + type: boolean + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + resourceGroupName: + description: The name of the resource group in which to create + the route table. Changing this forces a new resource to be created. + type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + route: + description: List of objects representing routes. Each object + accepts the arguments documented below. + items: + properties: + addressPrefix: + description: The destination to which the route applies. + Can be CIDR (such as 10.1.0.0/16) or Azure Service Tag + (such as ApiManagement, AzureBackup or AzureMonitor) format. + type: string + name: + description: The name of the route. + type: string + nextHopInIpAddress: + description: Contains the IP address packets should be forwarded + to. Next hop values are only allowed in routes where the + next hop type is VirtualAppliance. + type: string + nextHopType: + description: The type of Azure hop the packet should be + sent to. Possible values are VirtualNetworkGateway, VnetLocal, + Internet, VirtualAppliance and None. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + disableBgpRoutePropagation: + description: Boolean flag which controls propagation of routes + learned by BGP on that route table. True means disable. + type: boolean + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + route: + description: List of objects representing routes. Each object + accepts the arguments documented below. + items: + properties: + addressPrefix: + description: The destination to which the route applies. + Can be CIDR (such as 10.1.0.0/16) or Azure Service Tag + (such as ApiManagement, AzureBackup or AzureMonitor) format. + type: string + name: + description: The name of the route. + type: string + nextHopInIpAddress: + description: Contains the IP address packets should be forwarded + to. Next hop values are only allowed in routes where the + next hop type is VirtualAppliance. + type: string + nextHopType: + description: The type of Azure hop the packet should be + sent to. Possible values are VirtualNetworkGateway, VnetLocal, + Internet, VirtualAppliance and None. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + status: + description: RouteTableStatus defines the observed state of RouteTable. + properties: + atProvider: + properties: + disableBgpRoutePropagation: + description: Boolean flag which controls propagation of routes + learned by BGP on that route table. True means disable. + type: boolean + id: + description: The Route Table ID. + type: string + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + resourceGroupName: + description: The name of the resource group in which to create + the route table. Changing this forces a new resource to be created. + type: string + route: + description: List of objects representing routes. Each object + accepts the arguments documented below. + items: + properties: + addressPrefix: + description: The destination to which the route applies. + Can be CIDR (such as 10.1.0.0/16) or Azure Service Tag + (such as ApiManagement, AzureBackup or AzureMonitor) format. + type: string + name: + description: The name of the route. + type: string + nextHopInIpAddress: + description: Contains the IP address packets should be forwarded + to. Next hop values are only allowed in routes where the + next hop type is VirtualAppliance. + type: string + nextHopType: + description: The type of Azure hop the packet should be + sent to. Possible values are VirtualNetworkGateway, VnetLocal, + Internet, VirtualAppliance and None. + type: string + type: object + type: array + subnets: + description: The collection of Subnets associated with this route + table. + items: + type: string + type: array + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_securitygroups.yaml b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_securitygroups.yaml new file mode 100644 index 000000000..f528a5441 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_securitygroups.yaml @@ -0,0 +1,696 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: securitygroups.network.azure.kubedb.com +spec: + group: network.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: SecurityGroup + listKind: SecurityGroupList + plural: securitygroups + singular: securitygroup + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: SecurityGroup is the Schema for the SecurityGroups API. Manages + a network security group that contains a list of network security rules. + Network security groups enable inbound or outbound traffic to be enabled + or denied. + 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: SecurityGroupSpec defines the desired state of SecurityGroup + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + resourceGroupName: + description: The name of the resource group in which to create + the network security group. Changing this forces a new resource + to be created. + type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + securityRule: + description: List of objects representing security rules, as defined + below. + items: + properties: + access: + description: Specifies whether network traffic is allowed + or denied. Possible values are Allow and Deny. + type: string + description: + description: A description for this rule. Restricted to + 140 characters. + type: string + destinationAddressPrefix: + description: CIDR or destination IP range or * to match + any IP. Tags such as VirtualNetwork, AzureLoadBalancer + and Internet can also be used. This is required if destination_address_prefixes + is not specified. + type: string + destinationAddressPrefixes: + description: List of destination address prefixes. Tags + may not be used. This is required if destination_address_prefix + is not specified. + items: + type: string + type: array + destinationApplicationSecurityGroupIds: + description: A List of destination Application Security + Group IDs + items: + type: string + type: array + destinationPortRange: + description: Destination Port or Range. Integer or range + between 0 and 65535 or * to match any. This is required + if destination_port_ranges is not specified. + type: string + destinationPortRanges: + description: List of destination ports or port ranges. This + is required if destination_port_range is not specified. + items: + type: string + type: array + direction: + description: The direction specifies if rule will be evaluated + on incoming or outgoing traffic. Possible values are Inbound + and Outbound. + type: string + name: + description: The name of the security rule. + type: string + priority: + description: Specifies the priority of the rule. The value + can be between 100 and 4096. The priority number must + be unique for each rule in the collection. The lower the + priority number, the higher the priority of the rule. + type: number + protocol: + description: Network protocol this rule applies to. Possible + values include Tcp, Udp, Icmp, Esp, Ah or * (which matches + all). + type: string + sourceAddressPrefix: + description: CIDR or source IP range or * to match any IP. + Tags such as VirtualNetwork, AzureLoadBalancer and Internet + can also be used. This is required if source_address_prefixes + is not specified. + type: string + sourceAddressPrefixes: + description: List of source address prefixes. Tags may not + be used. This is required if source_address_prefix is + not specified. + items: + type: string + type: array + sourceApplicationSecurityGroupIds: + description: A List of source Application Security Group + IDs + items: + type: string + type: array + sourcePortRange: + description: Source Port or Range. Integer or range between + 0 and 65535 or * to match any. This is required if source_port_ranges + is not specified. + type: string + sourcePortRanges: + description: List of source ports or port ranges. This is + required if source_port_range is not specified. + items: + type: string + type: array + type: object + type: array + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + securityRule: + description: List of objects representing security rules, as defined + below. + items: + properties: + access: + description: Specifies whether network traffic is allowed + or denied. Possible values are Allow and Deny. + type: string + description: + description: A description for this rule. Restricted to + 140 characters. + type: string + destinationAddressPrefix: + description: CIDR or destination IP range or * to match + any IP. Tags such as VirtualNetwork, AzureLoadBalancer + and Internet can also be used. This is required if destination_address_prefixes + is not specified. + type: string + destinationAddressPrefixes: + description: List of destination address prefixes. Tags + may not be used. This is required if destination_address_prefix + is not specified. + items: + type: string + type: array + destinationApplicationSecurityGroupIds: + description: A List of destination Application Security + Group IDs + items: + type: string + type: array + destinationPortRange: + description: Destination Port or Range. Integer or range + between 0 and 65535 or * to match any. This is required + if destination_port_ranges is not specified. + type: string + destinationPortRanges: + description: List of destination ports or port ranges. This + is required if destination_port_range is not specified. + items: + type: string + type: array + direction: + description: The direction specifies if rule will be evaluated + on incoming or outgoing traffic. Possible values are Inbound + and Outbound. + type: string + name: + description: The name of the security rule. + type: string + priority: + description: Specifies the priority of the rule. The value + can be between 100 and 4096. The priority number must + be unique for each rule in the collection. The lower the + priority number, the higher the priority of the rule. + type: number + protocol: + description: Network protocol this rule applies to. Possible + values include Tcp, Udp, Icmp, Esp, Ah or * (which matches + all). + type: string + sourceAddressPrefix: + description: CIDR or source IP range or * to match any IP. + Tags such as VirtualNetwork, AzureLoadBalancer and Internet + can also be used. This is required if source_address_prefixes + is not specified. + type: string + sourceAddressPrefixes: + description: List of source address prefixes. Tags may not + be used. This is required if source_address_prefix is + not specified. + items: + type: string + type: array + sourceApplicationSecurityGroupIds: + description: A List of source Application Security Group + IDs + items: + type: string + type: array + sourcePortRange: + description: Source Port or Range. Integer or range between + 0 and 65535 or * to match any. This is required if source_port_ranges + is not specified. + type: string + sourcePortRanges: + description: List of source ports or port ranges. This is + required if source_port_range is not specified. + items: + type: string + type: array + type: object + type: array + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + status: + description: SecurityGroupStatus defines the observed state of SecurityGroup. + properties: + atProvider: + properties: + id: + description: The ID of the Network Security Group. + type: string + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + resourceGroupName: + description: The name of the resource group in which to create + the network security group. Changing this forces a new resource + to be created. + type: string + securityRule: + description: List of objects representing security rules, as defined + below. + items: + properties: + access: + description: Specifies whether network traffic is allowed + or denied. Possible values are Allow and Deny. + type: string + description: + description: A description for this rule. Restricted to + 140 characters. + type: string + destinationAddressPrefix: + description: CIDR or destination IP range or * to match + any IP. Tags such as VirtualNetwork, AzureLoadBalancer + and Internet can also be used. This is required if destination_address_prefixes + is not specified. + type: string + destinationAddressPrefixes: + description: List of destination address prefixes. Tags + may not be used. This is required if destination_address_prefix + is not specified. + items: + type: string + type: array + destinationApplicationSecurityGroupIds: + description: A List of destination Application Security + Group IDs + items: + type: string + type: array + destinationPortRange: + description: Destination Port or Range. Integer or range + between 0 and 65535 or * to match any. This is required + if destination_port_ranges is not specified. + type: string + destinationPortRanges: + description: List of destination ports or port ranges. This + is required if destination_port_range is not specified. + items: + type: string + type: array + direction: + description: The direction specifies if rule will be evaluated + on incoming or outgoing traffic. Possible values are Inbound + and Outbound. + type: string + name: + description: The name of the security rule. + type: string + priority: + description: Specifies the priority of the rule. The value + can be between 100 and 4096. The priority number must + be unique for each rule in the collection. The lower the + priority number, the higher the priority of the rule. + type: number + protocol: + description: Network protocol this rule applies to. Possible + values include Tcp, Udp, Icmp, Esp, Ah or * (which matches + all). + type: string + sourceAddressPrefix: + description: CIDR or source IP range or * to match any IP. + Tags such as VirtualNetwork, AzureLoadBalancer and Internet + can also be used. This is required if source_address_prefixes + is not specified. + type: string + sourceAddressPrefixes: + description: List of source address prefixes. Tags may not + be used. This is required if source_address_prefix is + not specified. + items: + type: string + type: array + sourceApplicationSecurityGroupIds: + description: A List of source Application Security Group + IDs + items: + type: string + type: array + sourcePortRange: + description: Source Port or Range. Integer or range between + 0 and 65535 or * to match any. This is required if source_port_ranges + is not specified. + type: string + sourcePortRanges: + description: List of source ports or port ranges. This is + required if source_port_range is not specified. + items: + type: string + type: array + type: object + type: array + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_subnetnetworksecuritygroupassociations.yaml b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_subnetnetworksecuritygroupassociations.yaml new file mode 100644 index 000000000..d8dc04fd9 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_subnetnetworksecuritygroupassociations.yaml @@ -0,0 +1,460 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: subnetnetworksecuritygroupassociations.network.azure.kubedb.com +spec: + group: network.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: SubnetNetworkSecurityGroupAssociation + listKind: SubnetNetworkSecurityGroupAssociationList + plural: subnetnetworksecuritygroupassociations + singular: subnetnetworksecuritygroupassociation + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: SubnetNetworkSecurityGroupAssociation is the Schema for the SubnetNetworkSecurityGroupAssociations + API. Associates a + 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: SubnetNetworkSecurityGroupAssociationSpec defines the desired + state of SubnetNetworkSecurityGroupAssociation + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + networkSecurityGroupId: + description: The ID of the Network Security Group which should + be associated with the Subnet. Changing this forces a new resource + to be created. + type: string + networkSecurityGroupIdRef: + description: Reference to a SecurityGroup to populate networkSecurityGroupId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + networkSecurityGroupIdSelector: + description: Selector for a SecurityGroup to populate networkSecurityGroupId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + subnetId: + description: The ID of the Subnet. Changing this forces a new + resource to be created. + type: string + subnetIdRef: + description: Reference to a Subnet to populate subnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + subnetIdSelector: + description: Selector for a Subnet to populate subnetId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: SubnetNetworkSecurityGroupAssociationStatus defines the observed + state of SubnetNetworkSecurityGroupAssociation. + properties: + atProvider: + properties: + id: + description: The ID of the Subnet. + type: string + networkSecurityGroupId: + description: The ID of the Network Security Group which should + be associated with the Subnet. Changing this forces a new resource + to be created. + type: string + subnetId: + description: The ID of the Subnet. Changing this forces a new + resource to be created. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_subnetroutetableassociations.yaml b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_subnetroutetableassociations.yaml new file mode 100644 index 000000000..8a383cd77 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_subnetroutetableassociations.yaml @@ -0,0 +1,458 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: subnetroutetableassociations.network.azure.kubedb.com +spec: + group: network.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: SubnetRouteTableAssociation + listKind: SubnetRouteTableAssociationList + plural: subnetroutetableassociations + singular: subnetroutetableassociation + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: SubnetRouteTableAssociation is the Schema for the SubnetRouteTableAssociations + API. Associates a + 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: SubnetRouteTableAssociationSpec defines the desired state + of SubnetRouteTableAssociation + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + routeTableId: + description: The ID of the Route Table which should be associated + with the Subnet. Changing this forces a new resource to be created. + type: string + routeTableIdRef: + description: Reference to a RouteTable to populate routeTableId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + routeTableIdSelector: + description: Selector for a RouteTable to populate routeTableId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + subnetId: + description: The ID of the Subnet. Changing this forces a new + resource to be created. + type: string + subnetIdRef: + description: Reference to a Subnet to populate subnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + subnetIdSelector: + description: Selector for a Subnet to populate subnetId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: SubnetRouteTableAssociationStatus defines the observed state + of SubnetRouteTableAssociation. + properties: + atProvider: + properties: + id: + description: The ID of the Subnet. + type: string + routeTableId: + description: The ID of the Route Table which should be associated + with the Subnet. Changing this forces a new resource to be created. + type: string + subnetId: + description: The ID of the Subnet. Changing this forces a new + resource to be created. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_subnets.yaml b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_subnets.yaml new file mode 100644 index 000000000..eaa461d02 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_subnets.yaml @@ -0,0 +1,763 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: subnets.network.azure.kubedb.com +spec: + group: network.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: Subnet + listKind: SubnetList + plural: subnets + singular: subnet + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: Subnet is the Schema for the Subnets API. Manages a subnet. Subnets + represent network segments within the IP space defined by the virtual network. + 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: SubnetSpec defines the desired state of Subnet + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + addressPrefixes: + description: The address prefixes to use for the subnet. + items: + type: string + type: array + delegation: + description: One or more delegation blocks as defined below. + items: + properties: + name: + description: A name for this delegation. + type: string + serviceDelegation: + description: A service_delegation block as defined below. + items: + properties: + actions: + description: A list of Actions which should be delegated. + This list is specific to the service to delegate + to. Possible values are Microsoft.Network/networkinterfaces/*, + Microsoft.Network/publicIPAddresses/join/action, + Microsoft.Network/publicIPAddresses/read, Microsoft.Network/virtualNetworks/read, + Microsoft.Network/virtualNetworks/subnets/action, + Microsoft.Network/virtualNetworks/subnets/join/action, + Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action, + and Microsoft.Network/virtualNetworks/subnets/unprepareNetworkPolicies/action. + items: + type: string + type: array + name: + description: The name of service to delegate to. Possible + values are GitHub.Network/networkSettings, Microsoft.ApiManagement/service, + Microsoft.Apollo/npu, Microsoft.App/environments, + Microsoft.App/testClients, Microsoft.AVS/PrivateClouds, + Microsoft.AzureCosmosDB/clusters, Microsoft.BareMetal/AzureHostedService, + Microsoft.BareMetal/AzureHPC, Microsoft.BareMetal/AzurePaymentHSM, + Microsoft.BareMetal/AzureVMware, Microsoft.BareMetal/CrayServers, + Microsoft.BareMetal/MonitoringServers, Microsoft.Batch/batchAccounts, + Microsoft.CloudTest/hostedpools, Microsoft.CloudTest/images, + Microsoft.CloudTest/pools, Microsoft.Codespaces/plans, + Microsoft.ContainerInstance/containerGroups, Microsoft.ContainerService/managedClusters, + Microsoft.ContainerService/TestClients, Microsoft.Databricks/workspaces, + Microsoft.DBforMySQL/flexibleServers, Microsoft.DBforMySQL/servers, + Microsoft.DBforMySQL/serversv2, Microsoft.DBforPostgreSQL/flexibleServers, + Microsoft.DBforPostgreSQL/serversv2, Microsoft.DBforPostgreSQL/singleServers, + Microsoft.DelegatedNetwork/controller, Microsoft.DevCenter/networkConnection, + Microsoft.DocumentDB/cassandraClusters, Microsoft.Fidalgo/networkSettings, + Microsoft.HardwareSecurityModules/dedicatedHSMs, + Microsoft.Kusto/clusters, Microsoft.LabServices/labplans, + Microsoft.Logic/integrationServiceEnvironments, + Microsoft.MachineLearningServices/workspaces, Microsoft.Netapp/volumes, + Microsoft.Network/dnsResolvers, Microsoft.Network/fpgaNetworkInterfaces, + Microsoft.Network/networkWatchers., Microsoft.Network/virtualNetworkGateways, + Microsoft.Orbital/orbitalGateways, Microsoft.PowerPlatform/enterprisePolicies, + Microsoft.PowerPlatform/vnetaccesslinks, Microsoft.ServiceFabricMesh/networks, + Microsoft.ServiceNetworking/trafficControllers, + Microsoft.Singularity/accounts/networks, Microsoft.Singularity/accounts/npu, + Microsoft.Sql/managedInstances, Microsoft.Sql/managedInstancesOnebox, + Microsoft.Sql/managedInstancesStage, Microsoft.Sql/managedInstancesTest, + Microsoft.StoragePool/diskPools, Microsoft.StreamAnalytics/streamingJobs, + Microsoft.Synapse/workspaces, Microsoft.Web/hostingEnvironments, + Microsoft.Web/serverFarms, NGINX.NGINXPLUS/nginxDeployments, + PaloAltoNetworks.Cloudngfw/firewalls, and Qumulo.Storage/fileSystems. + type: string + type: object + type: array + type: object + type: array + enforcePrivateLinkEndpointNetworkPolicies: + type: boolean + enforcePrivateLinkServiceNetworkPolicies: + type: boolean + privateEndpointNetworkPoliciesEnabled: + description: Enable or Disable network policies for the private + endpoint on the subnet. Setting this to true will Enable the + policy and setting this to false will Disable the policy. Defaults + to true. + type: boolean + privateLinkServiceNetworkPoliciesEnabled: + description: Enable or Disable network policies for the private + link service on the subnet. Setting this to true will Enable + the policy and setting this to false will Disable the policy. + Defaults to true. + type: boolean + resourceGroupName: + description: The name of the resource group in which to create + the subnet. Changing this forces a new resource to be created. + type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + serviceEndpointPolicyIds: + description: The list of IDs of Service Endpoint Policies to associate + with the subnet. + items: + type: string + type: array + serviceEndpoints: + description: 'The list of Service endpoints to associate with + the subnet. Possible values include: Microsoft.AzureActiveDirectory, + Microsoft.AzureCosmosDB, Microsoft.ContainerRegistry, Microsoft.EventHub, + Microsoft.KeyVault, Microsoft.ServiceBus, Microsoft.Sql, Microsoft.Storage, + Microsoft.Storage.Global and Microsoft.Web.' + items: + type: string + type: array + virtualNetworkName: + description: The name of the virtual network to which to attach + the subnet. Changing this forces a new resource to be created. + type: string + virtualNetworkNameRef: + description: Reference to a VirtualNetwork in network to populate + virtualNetworkName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + virtualNetworkNameSelector: + description: Selector for a VirtualNetwork in network to populate + virtualNetworkName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + addressPrefixes: + description: The address prefixes to use for the subnet. + items: + type: string + type: array + delegation: + description: One or more delegation blocks as defined below. + items: + properties: + name: + description: A name for this delegation. + type: string + serviceDelegation: + description: A service_delegation block as defined below. + items: + properties: + actions: + description: A list of Actions which should be delegated. + This list is specific to the service to delegate + to. Possible values are Microsoft.Network/networkinterfaces/*, + Microsoft.Network/publicIPAddresses/join/action, + Microsoft.Network/publicIPAddresses/read, Microsoft.Network/virtualNetworks/read, + Microsoft.Network/virtualNetworks/subnets/action, + Microsoft.Network/virtualNetworks/subnets/join/action, + Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action, + and Microsoft.Network/virtualNetworks/subnets/unprepareNetworkPolicies/action. + items: + type: string + type: array + name: + description: The name of service to delegate to. Possible + values are GitHub.Network/networkSettings, Microsoft.ApiManagement/service, + Microsoft.Apollo/npu, Microsoft.App/environments, + Microsoft.App/testClients, Microsoft.AVS/PrivateClouds, + Microsoft.AzureCosmosDB/clusters, Microsoft.BareMetal/AzureHostedService, + Microsoft.BareMetal/AzureHPC, Microsoft.BareMetal/AzurePaymentHSM, + Microsoft.BareMetal/AzureVMware, Microsoft.BareMetal/CrayServers, + Microsoft.BareMetal/MonitoringServers, Microsoft.Batch/batchAccounts, + Microsoft.CloudTest/hostedpools, Microsoft.CloudTest/images, + Microsoft.CloudTest/pools, Microsoft.Codespaces/plans, + Microsoft.ContainerInstance/containerGroups, Microsoft.ContainerService/managedClusters, + Microsoft.ContainerService/TestClients, Microsoft.Databricks/workspaces, + Microsoft.DBforMySQL/flexibleServers, Microsoft.DBforMySQL/servers, + Microsoft.DBforMySQL/serversv2, Microsoft.DBforPostgreSQL/flexibleServers, + Microsoft.DBforPostgreSQL/serversv2, Microsoft.DBforPostgreSQL/singleServers, + Microsoft.DelegatedNetwork/controller, Microsoft.DevCenter/networkConnection, + Microsoft.DocumentDB/cassandraClusters, Microsoft.Fidalgo/networkSettings, + Microsoft.HardwareSecurityModules/dedicatedHSMs, + Microsoft.Kusto/clusters, Microsoft.LabServices/labplans, + Microsoft.Logic/integrationServiceEnvironments, + Microsoft.MachineLearningServices/workspaces, Microsoft.Netapp/volumes, + Microsoft.Network/dnsResolvers, Microsoft.Network/fpgaNetworkInterfaces, + Microsoft.Network/networkWatchers., Microsoft.Network/virtualNetworkGateways, + Microsoft.Orbital/orbitalGateways, Microsoft.PowerPlatform/enterprisePolicies, + Microsoft.PowerPlatform/vnetaccesslinks, Microsoft.ServiceFabricMesh/networks, + Microsoft.ServiceNetworking/trafficControllers, + Microsoft.Singularity/accounts/networks, Microsoft.Singularity/accounts/npu, + Microsoft.Sql/managedInstances, Microsoft.Sql/managedInstancesOnebox, + Microsoft.Sql/managedInstancesStage, Microsoft.Sql/managedInstancesTest, + Microsoft.StoragePool/diskPools, Microsoft.StreamAnalytics/streamingJobs, + Microsoft.Synapse/workspaces, Microsoft.Web/hostingEnvironments, + Microsoft.Web/serverFarms, NGINX.NGINXPLUS/nginxDeployments, + PaloAltoNetworks.Cloudngfw/firewalls, and Qumulo.Storage/fileSystems. + type: string + type: object + type: array + type: object + type: array + enforcePrivateLinkEndpointNetworkPolicies: + type: boolean + enforcePrivateLinkServiceNetworkPolicies: + type: boolean + privateEndpointNetworkPoliciesEnabled: + description: Enable or Disable network policies for the private + endpoint on the subnet. Setting this to true will Enable the + policy and setting this to false will Disable the policy. Defaults + to true. + type: boolean + privateLinkServiceNetworkPoliciesEnabled: + description: Enable or Disable network policies for the private + link service on the subnet. Setting this to true will Enable + the policy and setting this to false will Disable the policy. + Defaults to true. + type: boolean + serviceEndpointPolicyIds: + description: The list of IDs of Service Endpoint Policies to associate + with the subnet. + items: + type: string + type: array + serviceEndpoints: + description: 'The list of Service endpoints to associate with + the subnet. Possible values include: Microsoft.AzureActiveDirectory, + Microsoft.AzureCosmosDB, Microsoft.ContainerRegistry, Microsoft.EventHub, + Microsoft.KeyVault, Microsoft.ServiceBus, Microsoft.Sql, Microsoft.Storage, + Microsoft.Storage.Global and Microsoft.Web.' + items: + type: string + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.addressPrefixes is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.addressPrefixes) + || (has(self.initProvider) && has(self.initProvider.addressPrefixes))' + status: + description: SubnetStatus defines the observed state of Subnet. + properties: + atProvider: + properties: + addressPrefixes: + description: The address prefixes to use for the subnet. + items: + type: string + type: array + delegation: + description: One or more delegation blocks as defined below. + items: + properties: + name: + description: A name for this delegation. + type: string + serviceDelegation: + description: A service_delegation block as defined below. + items: + properties: + actions: + description: A list of Actions which should be delegated. + This list is specific to the service to delegate + to. Possible values are Microsoft.Network/networkinterfaces/*, + Microsoft.Network/publicIPAddresses/join/action, + Microsoft.Network/publicIPAddresses/read, Microsoft.Network/virtualNetworks/read, + Microsoft.Network/virtualNetworks/subnets/action, + Microsoft.Network/virtualNetworks/subnets/join/action, + Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action, + and Microsoft.Network/virtualNetworks/subnets/unprepareNetworkPolicies/action. + items: + type: string + type: array + name: + description: The name of service to delegate to. Possible + values are GitHub.Network/networkSettings, Microsoft.ApiManagement/service, + Microsoft.Apollo/npu, Microsoft.App/environments, + Microsoft.App/testClients, Microsoft.AVS/PrivateClouds, + Microsoft.AzureCosmosDB/clusters, Microsoft.BareMetal/AzureHostedService, + Microsoft.BareMetal/AzureHPC, Microsoft.BareMetal/AzurePaymentHSM, + Microsoft.BareMetal/AzureVMware, Microsoft.BareMetal/CrayServers, + Microsoft.BareMetal/MonitoringServers, Microsoft.Batch/batchAccounts, + Microsoft.CloudTest/hostedpools, Microsoft.CloudTest/images, + Microsoft.CloudTest/pools, Microsoft.Codespaces/plans, + Microsoft.ContainerInstance/containerGroups, Microsoft.ContainerService/managedClusters, + Microsoft.ContainerService/TestClients, Microsoft.Databricks/workspaces, + Microsoft.DBforMySQL/flexibleServers, Microsoft.DBforMySQL/servers, + Microsoft.DBforMySQL/serversv2, Microsoft.DBforPostgreSQL/flexibleServers, + Microsoft.DBforPostgreSQL/serversv2, Microsoft.DBforPostgreSQL/singleServers, + Microsoft.DelegatedNetwork/controller, Microsoft.DevCenter/networkConnection, + Microsoft.DocumentDB/cassandraClusters, Microsoft.Fidalgo/networkSettings, + Microsoft.HardwareSecurityModules/dedicatedHSMs, + Microsoft.Kusto/clusters, Microsoft.LabServices/labplans, + Microsoft.Logic/integrationServiceEnvironments, + Microsoft.MachineLearningServices/workspaces, Microsoft.Netapp/volumes, + Microsoft.Network/dnsResolvers, Microsoft.Network/fpgaNetworkInterfaces, + Microsoft.Network/networkWatchers., Microsoft.Network/virtualNetworkGateways, + Microsoft.Orbital/orbitalGateways, Microsoft.PowerPlatform/enterprisePolicies, + Microsoft.PowerPlatform/vnetaccesslinks, Microsoft.ServiceFabricMesh/networks, + Microsoft.ServiceNetworking/trafficControllers, + Microsoft.Singularity/accounts/networks, Microsoft.Singularity/accounts/npu, + Microsoft.Sql/managedInstances, Microsoft.Sql/managedInstancesOnebox, + Microsoft.Sql/managedInstancesStage, Microsoft.Sql/managedInstancesTest, + Microsoft.StoragePool/diskPools, Microsoft.StreamAnalytics/streamingJobs, + Microsoft.Synapse/workspaces, Microsoft.Web/hostingEnvironments, + Microsoft.Web/serverFarms, NGINX.NGINXPLUS/nginxDeployments, + PaloAltoNetworks.Cloudngfw/firewalls, and Qumulo.Storage/fileSystems. + type: string + type: object + type: array + type: object + type: array + enforcePrivateLinkEndpointNetworkPolicies: + type: boolean + enforcePrivateLinkServiceNetworkPolicies: + type: boolean + id: + description: The subnet ID. + type: string + privateEndpointNetworkPoliciesEnabled: + description: Enable or Disable network policies for the private + endpoint on the subnet. Setting this to true will Enable the + policy and setting this to false will Disable the policy. Defaults + to true. + type: boolean + privateLinkServiceNetworkPoliciesEnabled: + description: Enable or Disable network policies for the private + link service on the subnet. Setting this to true will Enable + the policy and setting this to false will Disable the policy. + Defaults to true. + type: boolean + resourceGroupName: + description: The name of the resource group in which to create + the subnet. Changing this forces a new resource to be created. + type: string + serviceEndpointPolicyIds: + description: The list of IDs of Service Endpoint Policies to associate + with the subnet. + items: + type: string + type: array + serviceEndpoints: + description: 'The list of Service endpoints to associate with + the subnet. Possible values include: Microsoft.AzureActiveDirectory, + Microsoft.AzureCosmosDB, Microsoft.ContainerRegistry, Microsoft.EventHub, + Microsoft.KeyVault, Microsoft.ServiceBus, Microsoft.Sql, Microsoft.Storage, + Microsoft.Storage.Global and Microsoft.Web.' + items: + type: string + type: array + virtualNetworkName: + description: The name of the virtual network to which to attach + the subnet. Changing this forces a new resource to be created. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_virtualnetworkpeerings.yaml b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_virtualnetworkpeerings.yaml index 6374bc695..3d5b50c59 100644 --- a/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_virtualnetworkpeerings.yaml +++ b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_virtualnetworkpeerings.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: virtualnetworkpeerings.network.azure.kubedb.com spec: group: network.azure.kubedb.com @@ -57,7 +57,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -161,6 +161,81 @@ spec: the virtual network peering. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object triggers: additionalProperties: type: string @@ -254,24 +329,73 @@ spec: type: string type: object type: object - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + allowForwardedTraffic: + description: Controls if forwarded traffic from VMs in the remote + virtual network is allowed. Defaults to false. + type: boolean + allowGatewayTransit: + description: Controls gatewayLinks can be used in the remote virtual + network’s link to the local virtual network. Defaults to false. + type: boolean + allowVirtualNetworkAccess: + description: Controls if the VMs in the remote virtual network + can access VMs in the local virtual network. Defaults to true. + type: boolean + triggers: + additionalProperties: + type: string + description: A mapping of key values pairs that can be used to + sync network routes from the remote virtual network to the local + virtual network. See the trigger example for an example on how + to set it up. + type: object + useRemoteGateways: + description: Controls if remote gateways can be used on the local + virtual network. If the flag is set to true, and allow_gateway_transit + on the remote peering is also true, virtual network will use + gateways of remote virtual network for transit. Only one peering + can have this flag set to true. This flag cannot be set if virtual + network already has a gateway. Defaults to false. + type: boolean + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -310,42 +434,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -527,6 +615,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_virtualnetworks.yaml b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_virtualnetworks.yaml index 2c59e2c2b..d382a386a 100644 --- a/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_virtualnetworks.yaml +++ b/charts/kubedb-provider-azure/crds/network.azure.kubedb.com_virtualnetworks.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: virtualnetworks.network.azure.kubedb.com spec: group: network.azure.kubedb.com @@ -57,7 +57,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -87,9 +87,6 @@ spec: id: description: The ID of DDoS Protection Plan. type: string - required: - - enable - - id type: object type: array dnsServers: @@ -116,29 +113,171 @@ spec: the virtual network. Changing this forces a new resource to be created. type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object tags: additionalProperties: type: string description: A mapping of tags to assign to the resource. type: object - required: - - resourceGroupName type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + addressSpace: + description: The address space that is used the virtual network. + You can supply more than one address space. + items: + type: string + type: array + bgpCommunity: + description: The BGP community attribute in format :. + type: string + ddosProtectionPlan: + description: A ddos_protection_plan block as documented below. + items: + properties: + enable: + description: Enable/disable DDoS Protection Plan on Virtual + Network. + type: boolean + id: + description: The ID of DDoS Protection Plan. + type: string + type: object + type: array + dnsServers: + description: List of IP addresses of DNS servers + items: + type: string + type: array + edgeZone: + description: Specifies the Edge Zone within the Azure Region where + this Virtual Network should exist. Changing this forces a new + Virtual Network to be created. + type: string + flowTimeoutInMinutes: + description: The flow timeout in minutes for the Virtual Network, + which is used to enable connection tracking for intra-VM flows. + Possible values are between 4 and 30 minutes. + type: number + location: + description: The location/region where the virtual network is + created. Changing this forces a new resource to be created. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -177,42 +316,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -311,10 +414,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: addressSpace is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.addressSpace) - - message: location is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.location) + - message: spec.forProvider.addressSpace is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.addressSpace) + || (has(self.initProvider) && has(self.initProvider.addressSpace))' + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' status: description: VirtualNetworkStatus defines the observed state of VirtualNetwork. properties: @@ -431,6 +538,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqldatabases.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqldatabases.yaml new file mode 100644 index 000000000..694d8f2f3 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqldatabases.yaml @@ -0,0 +1,1128 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqldatabases.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLDatabase + listKind: MSSQLDatabaseList + plural: mssqldatabases + singular: mssqldatabase + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLDatabase is the Schema for the MSSQLDatabases API. Manages + a MS SQL Database. + 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: MSSQLDatabaseSpec defines the desired state of MSSQLDatabase + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + autoPauseDelayInMinutes: + description: Time in minutes after which database is automatically + paused. A value of -1 means that automatic pause is disabled. + This property is only settable for General Purpose Serverless + databases. + type: number + collation: + description: Specifies the collation of the database. Changing + this forces a new resource to be created. + type: string + createMode: + description: The create mode of the database. Possible values + are Copy, Default, OnlineSecondary, PointInTimeRestore, Recovery, + Restore, RestoreExternalBackup, RestoreExternalBackupSecondary, + RestoreLongTermRetentionBackup and Secondary. Mutually exclusive + with import. Changing this forces a new resource to be created. + type: string + creationSourceDatabaseId: + description: The ID of the source database from which to create + the new database. This should only be used for databases with + create_mode values that use another database as reference. Changing + this forces a new resource to be created. + type: string + elasticPoolId: + description: Specifies the ID of the elastic pool containing this + database. + type: string + geoBackupEnabled: + description: A boolean that specifies if the Geo Backup Policy + is enabled. Defaults to true. + type: boolean + import: + description: A Database Import block as documented below. Mutually + exclusive with create_mode. + items: + properties: + administratorLogin: + description: Specifies the name of the SQL administrator. + type: string + administratorLoginPasswordSecretRef: + description: Specifies the password of the SQL administrator. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + authenticationType: + description: Specifies the type of authentication used to + access the server. Valid values are SQL or ADPassword. + type: string + storageAccountId: + description: The resource id for the storage account used + to store BACPAC file. If set, private endpoint connection + will be created for the storage account. Must match storage + account used for storage_uri parameter. + type: string + storageKeySecretRef: + description: Specifies the access key for the storage account. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + storageKeyType: + description: Specifies the type of access key for the storage + account. Valid values are StorageAccessKey or SharedAccessKey. + type: string + storageUri: + description: Specifies the blob URI of the .bacpac file. + type: string + required: + - administratorLoginPasswordSecretRef + - storageKeySecretRef + type: object + type: array + ledgerEnabled: + description: A boolean that specifies if this is a ledger database. + Defaults to false. Changing this forces a new resource to be + created. + type: boolean + licenseType: + description: Specifies the license type applied to this database. + Possible values are LicenseIncluded and BasePrice. + type: string + longTermRetentionPolicy: + description: A long_term_retention_policy block as defined below. + items: + properties: + monthlyRetention: + description: The monthly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 120 + months. e.g. P1Y, P1M, P4W or P30D. + type: string + weekOfYear: + description: The week of year to take the yearly backup. + Value has to be between 1 and 52. + type: number + weeklyRetention: + description: The weekly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 520 + weeks. e.g. P1Y, P1M, P1W or P7D. + type: string + yearlyRetention: + description: The yearly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 10 + years. e.g. P1Y, P12M, P52W or P365D. + type: string + type: object + type: array + maintenanceConfigurationName: + description: The name of the Public Maintenance Configuration + window to apply to the database. Valid values include SQL_Default, + SQL_EastUS_DB_1, SQL_EastUS2_DB_1, SQL_SoutheastAsia_DB_1, SQL_AustraliaEast_DB_1, + SQL_NorthEurope_DB_1, SQL_SouthCentralUS_DB_1, SQL_WestUS2_DB_1, + SQL_UKSouth_DB_1, SQL_WestEurope_DB_1, SQL_EastUS_DB_2, SQL_EastUS2_DB_2, + SQL_WestUS2_DB_2, SQL_SoutheastAsia_DB_2, SQL_AustraliaEast_DB_2, + SQL_NorthEurope_DB_2, SQL_SouthCentralUS_DB_2, SQL_UKSouth_DB_2, + SQL_WestEurope_DB_2, SQL_AustraliaSoutheast_DB_1, SQL_BrazilSouth_DB_1, + SQL_CanadaCentral_DB_1, SQL_CanadaEast_DB_1, SQL_CentralUS_DB_1, + SQL_EastAsia_DB_1, SQL_FranceCentral_DB_1, SQL_GermanyWestCentral_DB_1, + SQL_CentralIndia_DB_1, SQL_SouthIndia_DB_1, SQL_JapanEast_DB_1, + SQL_JapanWest_DB_1, SQL_NorthCentralUS_DB_1, SQL_UKWest_DB_1, + SQL_WestUS_DB_1, SQL_AustraliaSoutheast_DB_2, SQL_BrazilSouth_DB_2, + SQL_CanadaCentral_DB_2, SQL_CanadaEast_DB_2, SQL_CentralUS_DB_2, + SQL_EastAsia_DB_2, SQL_FranceCentral_DB_2, SQL_GermanyWestCentral_DB_2, + SQL_CentralIndia_DB_2, SQL_SouthIndia_DB_2, SQL_JapanEast_DB_2, + SQL_JapanWest_DB_2, SQL_NorthCentralUS_DB_2, SQL_UKWest_DB_2, + SQL_WestUS_DB_2, SQL_WestCentralUS_DB_1, SQL_FranceSouth_DB_1, + SQL_WestCentralUS_DB_2, SQL_FranceSouth_DB_2, SQL_SwitzerlandNorth_DB_1, + SQL_SwitzerlandNorth_DB_2, SQL_BrazilSoutheast_DB_1, SQL_UAENorth_DB_1, + SQL_BrazilSoutheast_DB_2, SQL_UAENorth_DB_2. Defaults to SQL_Default. + type: string + maxSizeGb: + description: The max size of the database in gigabytes. + type: number + minCapacity: + description: Minimal capacity that database will always have allocated, + if not paused. This property is only settable for General Purpose + Serverless databases. + type: number + readReplicaCount: + description: The number of readonly secondary replicas associated + with the database to which readonly application intent connections + may be routed. This property is only settable for Hyperscale + edition databases. + type: number + readScale: + description: If enabled, connections that have application intent + set to readonly in their connection string may be routed to + a readonly secondary replica. This property is only settable + for Premium and Business Critical databases. + type: boolean + recoverDatabaseId: + description: The ID of the database to be recovered. This property + is only applicable when the create_mode is Recovery. + type: string + restoreDroppedDatabaseId: + description: The ID of the database to be restored. This property + is only applicable when the create_mode is Restore. + type: string + restorePointInTime: + description: Specifies the point in time (ISO8601 format) of the + source database that will be restored to create the new database. + This property is only settable for create_mode= PointInTimeRestore + databases. + type: string + sampleName: + description: Specifies the name of the sample schema to apply + when creating this database. Possible value is AdventureWorksLT. + type: string + serverId: + description: The id of the MS SQL Server on which to create the + database. Changing this forces a new resource to be created. + type: string + serverIdRef: + description: Reference to a MSSQLServer to populate serverId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverIdSelector: + description: Selector for a MSSQLServer to populate serverId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + shortTermRetentionPolicy: + description: A short_term_retention_policy block as defined below. + items: + properties: + backupIntervalInHours: + description: The hours between each differential backup. + This is only applicable to live databases but not dropped + databases. Value has to be 12 or 24. Defaults to 12 hours. + type: number + retentionDays: + description: Point In Time Restore configuration. Value + has to be between 7 and 35. + type: number + type: object + type: array + skuName: + description: Specifies the name of the SKU used by the database. + For example, GP_S_Gen5_2,HS_Gen4_1,BC_Gen5_2, ElasticPool, Basic,S0, + P2 ,DW100c, DS100. Changing this from the HyperScale service + tier to another service tier will create a new resource. + type: string + storageAccountType: + description: Specifies the storage account type used to store + backups for this database. Possible values are Geo, Local and + Zone. The default value is Geo. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + threatDetectionPolicy: + description: Threat detection policy configuration. The threat_detection_policy + block supports fields documented below. + items: + properties: + disabledAlerts: + description: Specifies a list of alerts which should be + disabled. Possible values include Access_Anomaly, Sql_Injection + and Sql_Injection_Vulnerability. + items: + type: string + type: array + emailAccountAdmins: + description: Should the account administrators be emailed + when this alert is triggered? Possible values are Disabled + and Enabled. + type: string + emailAddresses: + description: A list of email addresses which alerts should + be sent to. + items: + type: string + type: array + retentionDays: + description: Specifies the number of days to keep in the + Threat Detection audit logs. + type: number + state: + description: The State of the Policy. Possible values are + Enabled, Disabled or New. + type: string + storageAccountAccessKeySecretRef: + description: Specifies the identifier key of the Threat + Detection audit storage account. Required if state is + Enabled. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + storageEndpoint: + description: Specifies the blob storage endpoint (e.g. https://example.blob.core.windows.net). + This blob storage will hold all Threat Detection audit + logs. Required if state is Enabled. + type: string + type: object + type: array + transparentDataEncryptionEnabled: + description: If set to true, Transparent Data Encryption will + be enabled on the database. Defaults to true. + type: boolean + zoneRedundant: + description: Whether or not this database is zone redundant, which + means the replicas of this database will be spread across multiple + availability zones. This property is only settable for Premium + and Business Critical databases. + type: boolean + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + autoPauseDelayInMinutes: + description: Time in minutes after which database is automatically + paused. A value of -1 means that automatic pause is disabled. + This property is only settable for General Purpose Serverless + databases. + type: number + collation: + description: Specifies the collation of the database. Changing + this forces a new resource to be created. + type: string + createMode: + description: The create mode of the database. Possible values + are Copy, Default, OnlineSecondary, PointInTimeRestore, Recovery, + Restore, RestoreExternalBackup, RestoreExternalBackupSecondary, + RestoreLongTermRetentionBackup and Secondary. Mutually exclusive + with import. Changing this forces a new resource to be created. + type: string + creationSourceDatabaseId: + description: The ID of the source database from which to create + the new database. This should only be used for databases with + create_mode values that use another database as reference. Changing + this forces a new resource to be created. + type: string + elasticPoolId: + description: Specifies the ID of the elastic pool containing this + database. + type: string + geoBackupEnabled: + description: A boolean that specifies if the Geo Backup Policy + is enabled. Defaults to true. + type: boolean + import: + description: A Database Import block as documented below. Mutually + exclusive with create_mode. + items: + properties: + administratorLogin: + description: Specifies the name of the SQL administrator. + type: string + authenticationType: + description: Specifies the type of authentication used to + access the server. Valid values are SQL or ADPassword. + type: string + storageAccountId: + description: The resource id for the storage account used + to store BACPAC file. If set, private endpoint connection + will be created for the storage account. Must match storage + account used for storage_uri parameter. + type: string + storageKeyType: + description: Specifies the type of access key for the storage + account. Valid values are StorageAccessKey or SharedAccessKey. + type: string + storageUri: + description: Specifies the blob URI of the .bacpac file. + type: string + type: object + type: array + ledgerEnabled: + description: A boolean that specifies if this is a ledger database. + Defaults to false. Changing this forces a new resource to be + created. + type: boolean + licenseType: + description: Specifies the license type applied to this database. + Possible values are LicenseIncluded and BasePrice. + type: string + longTermRetentionPolicy: + description: A long_term_retention_policy block as defined below. + items: + properties: + monthlyRetention: + description: The monthly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 120 + months. e.g. P1Y, P1M, P4W or P30D. + type: string + weekOfYear: + description: The week of year to take the yearly backup. + Value has to be between 1 and 52. + type: number + weeklyRetention: + description: The weekly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 520 + weeks. e.g. P1Y, P1M, P1W or P7D. + type: string + yearlyRetention: + description: The yearly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 10 + years. e.g. P1Y, P12M, P52W or P365D. + type: string + type: object + type: array + maintenanceConfigurationName: + description: The name of the Public Maintenance Configuration + window to apply to the database. Valid values include SQL_Default, + SQL_EastUS_DB_1, SQL_EastUS2_DB_1, SQL_SoutheastAsia_DB_1, SQL_AustraliaEast_DB_1, + SQL_NorthEurope_DB_1, SQL_SouthCentralUS_DB_1, SQL_WestUS2_DB_1, + SQL_UKSouth_DB_1, SQL_WestEurope_DB_1, SQL_EastUS_DB_2, SQL_EastUS2_DB_2, + SQL_WestUS2_DB_2, SQL_SoutheastAsia_DB_2, SQL_AustraliaEast_DB_2, + SQL_NorthEurope_DB_2, SQL_SouthCentralUS_DB_2, SQL_UKSouth_DB_2, + SQL_WestEurope_DB_2, SQL_AustraliaSoutheast_DB_1, SQL_BrazilSouth_DB_1, + SQL_CanadaCentral_DB_1, SQL_CanadaEast_DB_1, SQL_CentralUS_DB_1, + SQL_EastAsia_DB_1, SQL_FranceCentral_DB_1, SQL_GermanyWestCentral_DB_1, + SQL_CentralIndia_DB_1, SQL_SouthIndia_DB_1, SQL_JapanEast_DB_1, + SQL_JapanWest_DB_1, SQL_NorthCentralUS_DB_1, SQL_UKWest_DB_1, + SQL_WestUS_DB_1, SQL_AustraliaSoutheast_DB_2, SQL_BrazilSouth_DB_2, + SQL_CanadaCentral_DB_2, SQL_CanadaEast_DB_2, SQL_CentralUS_DB_2, + SQL_EastAsia_DB_2, SQL_FranceCentral_DB_2, SQL_GermanyWestCentral_DB_2, + SQL_CentralIndia_DB_2, SQL_SouthIndia_DB_2, SQL_JapanEast_DB_2, + SQL_JapanWest_DB_2, SQL_NorthCentralUS_DB_2, SQL_UKWest_DB_2, + SQL_WestUS_DB_2, SQL_WestCentralUS_DB_1, SQL_FranceSouth_DB_1, + SQL_WestCentralUS_DB_2, SQL_FranceSouth_DB_2, SQL_SwitzerlandNorth_DB_1, + SQL_SwitzerlandNorth_DB_2, SQL_BrazilSoutheast_DB_1, SQL_UAENorth_DB_1, + SQL_BrazilSoutheast_DB_2, SQL_UAENorth_DB_2. Defaults to SQL_Default. + type: string + maxSizeGb: + description: The max size of the database in gigabytes. + type: number + minCapacity: + description: Minimal capacity that database will always have allocated, + if not paused. This property is only settable for General Purpose + Serverless databases. + type: number + readReplicaCount: + description: The number of readonly secondary replicas associated + with the database to which readonly application intent connections + may be routed. This property is only settable for Hyperscale + edition databases. + type: number + readScale: + description: If enabled, connections that have application intent + set to readonly in their connection string may be routed to + a readonly secondary replica. This property is only settable + for Premium and Business Critical databases. + type: boolean + recoverDatabaseId: + description: The ID of the database to be recovered. This property + is only applicable when the create_mode is Recovery. + type: string + restoreDroppedDatabaseId: + description: The ID of the database to be restored. This property + is only applicable when the create_mode is Restore. + type: string + restorePointInTime: + description: Specifies the point in time (ISO8601 format) of the + source database that will be restored to create the new database. + This property is only settable for create_mode= PointInTimeRestore + databases. + type: string + sampleName: + description: Specifies the name of the sample schema to apply + when creating this database. Possible value is AdventureWorksLT. + type: string + shortTermRetentionPolicy: + description: A short_term_retention_policy block as defined below. + items: + properties: + backupIntervalInHours: + description: The hours between each differential backup. + This is only applicable to live databases but not dropped + databases. Value has to be 12 or 24. Defaults to 12 hours. + type: number + retentionDays: + description: Point In Time Restore configuration. Value + has to be between 7 and 35. + type: number + type: object + type: array + skuName: + description: Specifies the name of the SKU used by the database. + For example, GP_S_Gen5_2,HS_Gen4_1,BC_Gen5_2, ElasticPool, Basic,S0, + P2 ,DW100c, DS100. Changing this from the HyperScale service + tier to another service tier will create a new resource. + type: string + storageAccountType: + description: Specifies the storage account type used to store + backups for this database. Possible values are Geo, Local and + Zone. The default value is Geo. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + threatDetectionPolicy: + description: Threat detection policy configuration. The threat_detection_policy + block supports fields documented below. + items: + properties: + disabledAlerts: + description: Specifies a list of alerts which should be + disabled. Possible values include Access_Anomaly, Sql_Injection + and Sql_Injection_Vulnerability. + items: + type: string + type: array + emailAccountAdmins: + description: Should the account administrators be emailed + when this alert is triggered? Possible values are Disabled + and Enabled. + type: string + emailAddresses: + description: A list of email addresses which alerts should + be sent to. + items: + type: string + type: array + retentionDays: + description: Specifies the number of days to keep in the + Threat Detection audit logs. + type: number + state: + description: The State of the Policy. Possible values are + Enabled, Disabled or New. + type: string + storageEndpoint: + description: Specifies the blob storage endpoint (e.g. https://example.blob.core.windows.net). + This blob storage will hold all Threat Detection audit + logs. Required if state is Enabled. + type: string + type: object + type: array + transparentDataEncryptionEnabled: + description: If set to true, Transparent Data Encryption will + be enabled on the database. Defaults to true. + type: boolean + zoneRedundant: + description: Whether or not this database is zone redundant, which + means the replicas of this database will be spread across multiple + availability zones. This property is only settable for Premium + and Business Critical databases. + type: boolean + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: MSSQLDatabaseStatus defines the observed state of MSSQLDatabase. + properties: + atProvider: + properties: + autoPauseDelayInMinutes: + description: Time in minutes after which database is automatically + paused. A value of -1 means that automatic pause is disabled. + This property is only settable for General Purpose Serverless + databases. + type: number + collation: + description: Specifies the collation of the database. Changing + this forces a new resource to be created. + type: string + createMode: + description: The create mode of the database. Possible values + are Copy, Default, OnlineSecondary, PointInTimeRestore, Recovery, + Restore, RestoreExternalBackup, RestoreExternalBackupSecondary, + RestoreLongTermRetentionBackup and Secondary. Mutually exclusive + with import. Changing this forces a new resource to be created. + type: string + creationSourceDatabaseId: + description: The ID of the source database from which to create + the new database. This should only be used for databases with + create_mode values that use another database as reference. Changing + this forces a new resource to be created. + type: string + elasticPoolId: + description: Specifies the ID of the elastic pool containing this + database. + type: string + geoBackupEnabled: + description: A boolean that specifies if the Geo Backup Policy + is enabled. Defaults to true. + type: boolean + id: + description: The ID of the MS SQL Database. + type: string + import: + description: A Database Import block as documented below. Mutually + exclusive with create_mode. + items: + properties: + administratorLogin: + description: Specifies the name of the SQL administrator. + type: string + authenticationType: + description: Specifies the type of authentication used to + access the server. Valid values are SQL or ADPassword. + type: string + storageAccountId: + description: The resource id for the storage account used + to store BACPAC file. If set, private endpoint connection + will be created for the storage account. Must match storage + account used for storage_uri parameter. + type: string + storageKeyType: + description: Specifies the type of access key for the storage + account. Valid values are StorageAccessKey or SharedAccessKey. + type: string + storageUri: + description: Specifies the blob URI of the .bacpac file. + type: string + type: object + type: array + ledgerEnabled: + description: A boolean that specifies if this is a ledger database. + Defaults to false. Changing this forces a new resource to be + created. + type: boolean + licenseType: + description: Specifies the license type applied to this database. + Possible values are LicenseIncluded and BasePrice. + type: string + longTermRetentionPolicy: + description: A long_term_retention_policy block as defined below. + items: + properties: + monthlyRetention: + description: The monthly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 120 + months. e.g. P1Y, P1M, P4W or P30D. + type: string + weekOfYear: + description: The week of year to take the yearly backup. + Value has to be between 1 and 52. + type: number + weeklyRetention: + description: The weekly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 520 + weeks. e.g. P1Y, P1M, P1W or P7D. + type: string + yearlyRetention: + description: The yearly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 10 + years. e.g. P1Y, P12M, P52W or P365D. + type: string + type: object + type: array + maintenanceConfigurationName: + description: The name of the Public Maintenance Configuration + window to apply to the database. Valid values include SQL_Default, + SQL_EastUS_DB_1, SQL_EastUS2_DB_1, SQL_SoutheastAsia_DB_1, SQL_AustraliaEast_DB_1, + SQL_NorthEurope_DB_1, SQL_SouthCentralUS_DB_1, SQL_WestUS2_DB_1, + SQL_UKSouth_DB_1, SQL_WestEurope_DB_1, SQL_EastUS_DB_2, SQL_EastUS2_DB_2, + SQL_WestUS2_DB_2, SQL_SoutheastAsia_DB_2, SQL_AustraliaEast_DB_2, + SQL_NorthEurope_DB_2, SQL_SouthCentralUS_DB_2, SQL_UKSouth_DB_2, + SQL_WestEurope_DB_2, SQL_AustraliaSoutheast_DB_1, SQL_BrazilSouth_DB_1, + SQL_CanadaCentral_DB_1, SQL_CanadaEast_DB_1, SQL_CentralUS_DB_1, + SQL_EastAsia_DB_1, SQL_FranceCentral_DB_1, SQL_GermanyWestCentral_DB_1, + SQL_CentralIndia_DB_1, SQL_SouthIndia_DB_1, SQL_JapanEast_DB_1, + SQL_JapanWest_DB_1, SQL_NorthCentralUS_DB_1, SQL_UKWest_DB_1, + SQL_WestUS_DB_1, SQL_AustraliaSoutheast_DB_2, SQL_BrazilSouth_DB_2, + SQL_CanadaCentral_DB_2, SQL_CanadaEast_DB_2, SQL_CentralUS_DB_2, + SQL_EastAsia_DB_2, SQL_FranceCentral_DB_2, SQL_GermanyWestCentral_DB_2, + SQL_CentralIndia_DB_2, SQL_SouthIndia_DB_2, SQL_JapanEast_DB_2, + SQL_JapanWest_DB_2, SQL_NorthCentralUS_DB_2, SQL_UKWest_DB_2, + SQL_WestUS_DB_2, SQL_WestCentralUS_DB_1, SQL_FranceSouth_DB_1, + SQL_WestCentralUS_DB_2, SQL_FranceSouth_DB_2, SQL_SwitzerlandNorth_DB_1, + SQL_SwitzerlandNorth_DB_2, SQL_BrazilSoutheast_DB_1, SQL_UAENorth_DB_1, + SQL_BrazilSoutheast_DB_2, SQL_UAENorth_DB_2. Defaults to SQL_Default. + type: string + maxSizeGb: + description: The max size of the database in gigabytes. + type: number + minCapacity: + description: Minimal capacity that database will always have allocated, + if not paused. This property is only settable for General Purpose + Serverless databases. + type: number + readReplicaCount: + description: The number of readonly secondary replicas associated + with the database to which readonly application intent connections + may be routed. This property is only settable for Hyperscale + edition databases. + type: number + readScale: + description: If enabled, connections that have application intent + set to readonly in their connection string may be routed to + a readonly secondary replica. This property is only settable + for Premium and Business Critical databases. + type: boolean + recoverDatabaseId: + description: The ID of the database to be recovered. This property + is only applicable when the create_mode is Recovery. + type: string + restoreDroppedDatabaseId: + description: The ID of the database to be restored. This property + is only applicable when the create_mode is Restore. + type: string + restorePointInTime: + description: Specifies the point in time (ISO8601 format) of the + source database that will be restored to create the new database. + This property is only settable for create_mode= PointInTimeRestore + databases. + type: string + sampleName: + description: Specifies the name of the sample schema to apply + when creating this database. Possible value is AdventureWorksLT. + type: string + serverId: + description: The id of the MS SQL Server on which to create the + database. Changing this forces a new resource to be created. + type: string + shortTermRetentionPolicy: + description: A short_term_retention_policy block as defined below. + items: + properties: + backupIntervalInHours: + description: The hours between each differential backup. + This is only applicable to live databases but not dropped + databases. Value has to be 12 or 24. Defaults to 12 hours. + type: number + retentionDays: + description: Point In Time Restore configuration. Value + has to be between 7 and 35. + type: number + type: object + type: array + skuName: + description: Specifies the name of the SKU used by the database. + For example, GP_S_Gen5_2,HS_Gen4_1,BC_Gen5_2, ElasticPool, Basic,S0, + P2 ,DW100c, DS100. Changing this from the HyperScale service + tier to another service tier will create a new resource. + type: string + storageAccountType: + description: Specifies the storage account type used to store + backups for this database. Possible values are Geo, Local and + Zone. The default value is Geo. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + threatDetectionPolicy: + description: Threat detection policy configuration. The threat_detection_policy + block supports fields documented below. + items: + properties: + disabledAlerts: + description: Specifies a list of alerts which should be + disabled. Possible values include Access_Anomaly, Sql_Injection + and Sql_Injection_Vulnerability. + items: + type: string + type: array + emailAccountAdmins: + description: Should the account administrators be emailed + when this alert is triggered? Possible values are Disabled + and Enabled. + type: string + emailAddresses: + description: A list of email addresses which alerts should + be sent to. + items: + type: string + type: array + retentionDays: + description: Specifies the number of days to keep in the + Threat Detection audit logs. + type: number + state: + description: The State of the Policy. Possible values are + Enabled, Disabled or New. + type: string + storageEndpoint: + description: Specifies the blob storage endpoint (e.g. https://example.blob.core.windows.net). + This blob storage will hold all Threat Detection audit + logs. Required if state is Enabled. + type: string + type: object + type: array + transparentDataEncryptionEnabled: + description: If set to true, Transparent Data Encryption will + be enabled on the database. Defaults to true. + type: boolean + zoneRedundant: + description: Whether or not this database is zone redundant, which + means the replicas of this database will be spread across multiple + availability zones. This property is only settable for Premium + and Business Critical databases. + type: boolean + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqldatabasevulnerabilityassessmentrulebaselines.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqldatabasevulnerabilityassessmentrulebaselines.yaml new file mode 100644 index 000000000..ed935c6a0 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqldatabasevulnerabilityassessmentrulebaselines.yaml @@ -0,0 +1,538 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqldatabasevulnerabilityassessmentrulebaselines.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLDatabaseVulnerabilityAssessmentRuleBaseline + listKind: MSSQLDatabaseVulnerabilityAssessmentRuleBaselineList + plural: mssqldatabasevulnerabilityassessmentrulebaselines + singular: mssqldatabasevulnerabilityassessmentrulebaseline + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLDatabaseVulnerabilityAssessmentRuleBaseline is the Schema + for the MSSQLDatabaseVulnerabilityAssessmentRuleBaselines API. Manages a + Database Vulnerability Assessment Rule Baseline. + 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: MSSQLDatabaseVulnerabilityAssessmentRuleBaselineSpec defines + the desired state of MSSQLDatabaseVulnerabilityAssessmentRuleBaseline + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + baselineName: + description: The name of the vulnerability assessment rule baseline. + Valid options are default and master. default implies a baseline + on a database level rule and master for server level rule. Defaults + to default. Changing this forces a new resource to be created. + type: string + baselineResult: + description: A baseline_result block as documented below. Multiple + blocks can be defined. + items: + properties: + result: + description: A list representing a result of the baseline. + items: + type: string + type: array + type: object + type: array + databaseName: + description: Specifies the name of the MS SQL Database. Changing + this forces a new resource to be created. + type: string + databaseNameRef: + description: Reference to a MSSQLDatabase to populate databaseName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + databaseNameSelector: + description: Selector for a MSSQLDatabase to populate databaseName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + ruleId: + description: The vulnerability assessment rule ID. Changing this + forces a new resource to be created. + type: string + serverVulnerabilityAssessmentId: + description: The Vulnerability Assessment ID of the MS SQL Server. + Changing this forces a new resource to be created. + type: string + serverVulnerabilityAssessmentIdRef: + description: Reference to a MSSQLServerVulnerabilityAssessment + in sql to populate serverVulnerabilityAssessmentId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverVulnerabilityAssessmentIdSelector: + description: Selector for a MSSQLServerVulnerabilityAssessment + in sql to populate serverVulnerabilityAssessmentId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + baselineName: + description: The name of the vulnerability assessment rule baseline. + Valid options are default and master. default implies a baseline + on a database level rule and master for server level rule. Defaults + to default. Changing this forces a new resource to be created. + type: string + baselineResult: + description: A baseline_result block as documented below. Multiple + blocks can be defined. + items: + properties: + result: + description: A list representing a result of the baseline. + items: + type: string + type: array + type: object + type: array + ruleId: + description: The vulnerability assessment rule ID. Changing this + forces a new resource to be created. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.baselineResult is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.baselineResult) + || (has(self.initProvider) && has(self.initProvider.baselineResult))' + - message: spec.forProvider.ruleId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.ruleId) + || (has(self.initProvider) && has(self.initProvider.ruleId))' + status: + description: MSSQLDatabaseVulnerabilityAssessmentRuleBaselineStatus defines + the observed state of MSSQLDatabaseVulnerabilityAssessmentRuleBaseline. + properties: + atProvider: + properties: + baselineName: + description: The name of the vulnerability assessment rule baseline. + Valid options are default and master. default implies a baseline + on a database level rule and master for server level rule. Defaults + to default. Changing this forces a new resource to be created. + type: string + baselineResult: + description: A baseline_result block as documented below. Multiple + blocks can be defined. + items: + properties: + result: + description: A list representing a result of the baseline. + items: + type: string + type: array + type: object + type: array + databaseName: + description: Specifies the name of the MS SQL Database. Changing + this forces a new resource to be created. + type: string + id: + description: The ID of the Database Vulnerability Assessment Rule + Baseline. + type: string + ruleId: + description: The vulnerability assessment rule ID. Changing this + forces a new resource to be created. + type: string + serverVulnerabilityAssessmentId: + description: The Vulnerability Assessment ID of the MS SQL Server. + Changing this forces a new resource to be created. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlelasticpools.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlelasticpools.yaml new file mode 100644 index 000000000..22f304e2a --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlelasticpools.yaml @@ -0,0 +1,746 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlelasticpools.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLElasticPool + listKind: MSSQLElasticPoolList + plural: mssqlelasticpools + singular: mssqlelasticpool + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLElasticPool is the Schema for the MSSQLElasticPools API. + Manages a SQL Elastic Pool. + 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: MSSQLElasticPoolSpec defines the desired state of MSSQLElasticPool + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + licenseType: + description: Specifies the license type applied to this database. + Possible values are LicenseIncluded and BasePrice. + type: string + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + maintenanceConfigurationName: + description: The name of the Public Maintenance Configuration + window to apply to the elastic pool. Valid values include SQL_Default, + SQL_EastUS_DB_1, SQL_EastUS2_DB_1, SQL_SoutheastAsia_DB_1, SQL_AustraliaEast_DB_1, + SQL_NorthEurope_DB_1, SQL_SouthCentralUS_DB_1, SQL_WestUS2_DB_1, + SQL_UKSouth_DB_1, SQL_WestEurope_DB_1, SQL_EastUS_DB_2, SQL_EastUS2_DB_2, + SQL_WestUS2_DB_2, SQL_SoutheastAsia_DB_2, SQL_AustraliaEast_DB_2, + SQL_NorthEurope_DB_2, SQL_SouthCentralUS_DB_2, SQL_UKSouth_DB_2, + SQL_WestEurope_DB_2, SQL_AustraliaSoutheast_DB_1, SQL_BrazilSouth_DB_1, + SQL_CanadaCentral_DB_1, SQL_CanadaEast_DB_1, SQL_CentralUS_DB_1, + SQL_EastAsia_DB_1, SQL_FranceCentral_DB_1, SQL_GermanyWestCentral_DB_1, + SQL_CentralIndia_DB_1, SQL_SouthIndia_DB_1, SQL_JapanEast_DB_1, + SQL_JapanWest_DB_1, SQL_NorthCentralUS_DB_1, SQL_UKWest_DB_1, + SQL_WestUS_DB_1, SQL_AustraliaSoutheast_DB_2, SQL_BrazilSouth_DB_2, + SQL_CanadaCentral_DB_2, SQL_CanadaEast_DB_2, SQL_CentralUS_DB_2, + SQL_EastAsia_DB_2, SQL_FranceCentral_DB_2, SQL_GermanyWestCentral_DB_2, + SQL_CentralIndia_DB_2, SQL_SouthIndia_DB_2, SQL_JapanEast_DB_2, + SQL_JapanWest_DB_2, SQL_NorthCentralUS_DB_2, SQL_UKWest_DB_2, + SQL_WestUS_DB_2, SQL_WestCentralUS_DB_1, SQL_FranceSouth_DB_1, + SQL_WestCentralUS_DB_2, SQL_FranceSouth_DB_2, SQL_SwitzerlandNorth_DB_1, + SQL_SwitzerlandNorth_DB_2, SQL_BrazilSoutheast_DB_1, SQL_UAENorth_DB_1, + SQL_BrazilSoutheast_DB_2, SQL_UAENorth_DB_2. Defaults to SQL_Default. + type: string + maxSizeBytes: + description: The max data size of the elastic pool in bytes. Conflicts + with max_size_gb. + type: number + maxSizeGb: + description: The max data size of the elastic pool in gigabytes. + Conflicts with max_size_bytes. + type: number + perDatabaseSettings: + description: A per_database_settings block as defined below. + items: + properties: + maxCapacity: + description: The maximum capacity any one database can consume. + type: number + minCapacity: + description: The minimum capacity all databases are guaranteed. + type: number + type: object + type: array + resourceGroupName: + description: The name of the resource group in which to create + the elastic pool. This must be the same as the resource group + of the underlying SQL server. Changing this forces a new resource + to be created. + type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + serverName: + description: The name of the SQL Server on which to create the + elastic pool. Changing this forces a new resource to be created. + type: string + serverNameRef: + description: Reference to a MSSQLServer to populate serverName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverNameSelector: + description: Selector for a MSSQLServer to populate serverName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + sku: + description: A sku block as defined below. + items: + properties: + capacity: + description: 'The scale up/out capacity, representing server''s + compute units. For more information see the documentation + for your Elasticpool configuration: vCore-based or DTU-based.' + type: number + family: + description: The family of hardware Gen4, Gen5, Fsv2 or + DC. + type: string + name: + description: Specifies the SKU Name for this Elasticpool. + The name of the SKU, will be either vCore based tier + + family pattern (e.g. GP_Gen4, BC_Gen5) or the DTU based + BasicPool, StandardPool, or PremiumPool pattern. Possible + values are BasicPool, StandardPool, PremiumPool, GP_Gen4, + GP_Gen5, GP_Fsv2, GP_DC, BC_Gen4, BC_Gen5 and BC_DC. + type: string + tier: + description: 'The tier of the particular SKU. Possible values + are GeneralPurpose, BusinessCritical, Basic, Standard, + or Premium. For more information see the documentation + for your Elasticpool configuration: vCore-based or DTU-based.' + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + zoneRedundant: + description: Whether or not this elastic pool is zone redundant. + tier needs to be Premium for DTU based or BusinessCritical for + vCore based sku. + type: boolean + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + licenseType: + description: Specifies the license type applied to this database. + Possible values are LicenseIncluded and BasePrice. + type: string + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + maintenanceConfigurationName: + description: The name of the Public Maintenance Configuration + window to apply to the elastic pool. Valid values include SQL_Default, + SQL_EastUS_DB_1, SQL_EastUS2_DB_1, SQL_SoutheastAsia_DB_1, SQL_AustraliaEast_DB_1, + SQL_NorthEurope_DB_1, SQL_SouthCentralUS_DB_1, SQL_WestUS2_DB_1, + SQL_UKSouth_DB_1, SQL_WestEurope_DB_1, SQL_EastUS_DB_2, SQL_EastUS2_DB_2, + SQL_WestUS2_DB_2, SQL_SoutheastAsia_DB_2, SQL_AustraliaEast_DB_2, + SQL_NorthEurope_DB_2, SQL_SouthCentralUS_DB_2, SQL_UKSouth_DB_2, + SQL_WestEurope_DB_2, SQL_AustraliaSoutheast_DB_1, SQL_BrazilSouth_DB_1, + SQL_CanadaCentral_DB_1, SQL_CanadaEast_DB_1, SQL_CentralUS_DB_1, + SQL_EastAsia_DB_1, SQL_FranceCentral_DB_1, SQL_GermanyWestCentral_DB_1, + SQL_CentralIndia_DB_1, SQL_SouthIndia_DB_1, SQL_JapanEast_DB_1, + SQL_JapanWest_DB_1, SQL_NorthCentralUS_DB_1, SQL_UKWest_DB_1, + SQL_WestUS_DB_1, SQL_AustraliaSoutheast_DB_2, SQL_BrazilSouth_DB_2, + SQL_CanadaCentral_DB_2, SQL_CanadaEast_DB_2, SQL_CentralUS_DB_2, + SQL_EastAsia_DB_2, SQL_FranceCentral_DB_2, SQL_GermanyWestCentral_DB_2, + SQL_CentralIndia_DB_2, SQL_SouthIndia_DB_2, SQL_JapanEast_DB_2, + SQL_JapanWest_DB_2, SQL_NorthCentralUS_DB_2, SQL_UKWest_DB_2, + SQL_WestUS_DB_2, SQL_WestCentralUS_DB_1, SQL_FranceSouth_DB_1, + SQL_WestCentralUS_DB_2, SQL_FranceSouth_DB_2, SQL_SwitzerlandNorth_DB_1, + SQL_SwitzerlandNorth_DB_2, SQL_BrazilSoutheast_DB_1, SQL_UAENorth_DB_1, + SQL_BrazilSoutheast_DB_2, SQL_UAENorth_DB_2. Defaults to SQL_Default. + type: string + maxSizeBytes: + description: The max data size of the elastic pool in bytes. Conflicts + with max_size_gb. + type: number + maxSizeGb: + description: The max data size of the elastic pool in gigabytes. + Conflicts with max_size_bytes. + type: number + perDatabaseSettings: + description: A per_database_settings block as defined below. + items: + properties: + maxCapacity: + description: The maximum capacity any one database can consume. + type: number + minCapacity: + description: The minimum capacity all databases are guaranteed. + type: number + type: object + type: array + sku: + description: A sku block as defined below. + items: + properties: + capacity: + description: 'The scale up/out capacity, representing server''s + compute units. For more information see the documentation + for your Elasticpool configuration: vCore-based or DTU-based.' + type: number + family: + description: The family of hardware Gen4, Gen5, Fsv2 or + DC. + type: string + name: + description: Specifies the SKU Name for this Elasticpool. + The name of the SKU, will be either vCore based tier + + family pattern (e.g. GP_Gen4, BC_Gen5) or the DTU based + BasicPool, StandardPool, or PremiumPool pattern. Possible + values are BasicPool, StandardPool, PremiumPool, GP_Gen4, + GP_Gen5, GP_Fsv2, GP_DC, BC_Gen4, BC_Gen5 and BC_DC. + type: string + tier: + description: 'The tier of the particular SKU. Possible values + are GeneralPurpose, BusinessCritical, Basic, Standard, + or Premium. For more information see the documentation + for your Elasticpool configuration: vCore-based or DTU-based.' + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + zoneRedundant: + description: Whether or not this elastic pool is zone redundant. + tier needs to be Premium for DTU based or BusinessCritical for + vCore based sku. + type: boolean + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + - message: spec.forProvider.perDatabaseSettings is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.perDatabaseSettings) + || (has(self.initProvider) && has(self.initProvider.perDatabaseSettings))' + - message: spec.forProvider.sku is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.sku) + || (has(self.initProvider) && has(self.initProvider.sku))' + status: + description: MSSQLElasticPoolStatus defines the observed state of MSSQLElasticPool. + properties: + atProvider: + properties: + id: + description: The ID of the MS SQL Elastic Pool. + type: string + licenseType: + description: Specifies the license type applied to this database. + Possible values are LicenseIncluded and BasePrice. + type: string + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + maintenanceConfigurationName: + description: The name of the Public Maintenance Configuration + window to apply to the elastic pool. Valid values include SQL_Default, + SQL_EastUS_DB_1, SQL_EastUS2_DB_1, SQL_SoutheastAsia_DB_1, SQL_AustraliaEast_DB_1, + SQL_NorthEurope_DB_1, SQL_SouthCentralUS_DB_1, SQL_WestUS2_DB_1, + SQL_UKSouth_DB_1, SQL_WestEurope_DB_1, SQL_EastUS_DB_2, SQL_EastUS2_DB_2, + SQL_WestUS2_DB_2, SQL_SoutheastAsia_DB_2, SQL_AustraliaEast_DB_2, + SQL_NorthEurope_DB_2, SQL_SouthCentralUS_DB_2, SQL_UKSouth_DB_2, + SQL_WestEurope_DB_2, SQL_AustraliaSoutheast_DB_1, SQL_BrazilSouth_DB_1, + SQL_CanadaCentral_DB_1, SQL_CanadaEast_DB_1, SQL_CentralUS_DB_1, + SQL_EastAsia_DB_1, SQL_FranceCentral_DB_1, SQL_GermanyWestCentral_DB_1, + SQL_CentralIndia_DB_1, SQL_SouthIndia_DB_1, SQL_JapanEast_DB_1, + SQL_JapanWest_DB_1, SQL_NorthCentralUS_DB_1, SQL_UKWest_DB_1, + SQL_WestUS_DB_1, SQL_AustraliaSoutheast_DB_2, SQL_BrazilSouth_DB_2, + SQL_CanadaCentral_DB_2, SQL_CanadaEast_DB_2, SQL_CentralUS_DB_2, + SQL_EastAsia_DB_2, SQL_FranceCentral_DB_2, SQL_GermanyWestCentral_DB_2, + SQL_CentralIndia_DB_2, SQL_SouthIndia_DB_2, SQL_JapanEast_DB_2, + SQL_JapanWest_DB_2, SQL_NorthCentralUS_DB_2, SQL_UKWest_DB_2, + SQL_WestUS_DB_2, SQL_WestCentralUS_DB_1, SQL_FranceSouth_DB_1, + SQL_WestCentralUS_DB_2, SQL_FranceSouth_DB_2, SQL_SwitzerlandNorth_DB_1, + SQL_SwitzerlandNorth_DB_2, SQL_BrazilSoutheast_DB_1, SQL_UAENorth_DB_1, + SQL_BrazilSoutheast_DB_2, SQL_UAENorth_DB_2. Defaults to SQL_Default. + type: string + maxSizeBytes: + description: The max data size of the elastic pool in bytes. Conflicts + with max_size_gb. + type: number + maxSizeGb: + description: The max data size of the elastic pool in gigabytes. + Conflicts with max_size_bytes. + type: number + perDatabaseSettings: + description: A per_database_settings block as defined below. + items: + properties: + maxCapacity: + description: The maximum capacity any one database can consume. + type: number + minCapacity: + description: The minimum capacity all databases are guaranteed. + type: number + type: object + type: array + resourceGroupName: + description: The name of the resource group in which to create + the elastic pool. This must be the same as the resource group + of the underlying SQL server. Changing this forces a new resource + to be created. + type: string + serverName: + description: The name of the SQL Server on which to create the + elastic pool. Changing this forces a new resource to be created. + type: string + sku: + description: A sku block as defined below. + items: + properties: + capacity: + description: 'The scale up/out capacity, representing server''s + compute units. For more information see the documentation + for your Elasticpool configuration: vCore-based or DTU-based.' + type: number + family: + description: The family of hardware Gen4, Gen5, Fsv2 or + DC. + type: string + name: + description: Specifies the SKU Name for this Elasticpool. + The name of the SKU, will be either vCore based tier + + family pattern (e.g. GP_Gen4, BC_Gen5) or the DTU based + BasicPool, StandardPool, or PremiumPool pattern. Possible + values are BasicPool, StandardPool, PremiumPool, GP_Gen4, + GP_Gen5, GP_Fsv2, GP_DC, BC_Gen4, BC_Gen5 and BC_DC. + type: string + tier: + description: 'The tier of the particular SKU. Possible values + are GeneralPurpose, BusinessCritical, Basic, Standard, + or Premium. For more information see the documentation + for your Elasticpool configuration: vCore-based or DTU-based.' + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + zoneRedundant: + description: Whether or not this elastic pool is zone redundant. + tier needs to be Premium for DTU based or BusinessCritical for + vCore based sku. + type: boolean + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlfailovergroups.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlfailovergroups.yaml new file mode 100644 index 000000000..1bba12b90 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlfailovergroups.yaml @@ -0,0 +1,663 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlfailovergroups.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLFailoverGroup + listKind: MSSQLFailoverGroupList + plural: mssqlfailovergroups + singular: mssqlfailovergroup + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLFailoverGroup is the Schema for the MSSQLFailoverGroups + API. Manages a Microsoft Azure SQL Failover Group. + 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: MSSQLFailoverGroupSpec defines the desired state of MSSQLFailoverGroup + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + databases: + description: A set of database names to include in the failover + group. + items: + type: string + type: array + databasesRefs: + description: References to MSSQLDatabase to populate databases. + items: + description: A Reference to a named object. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which + will attempt to resolve the reference only when the + corresponding field is not present. Use 'Always' to + resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + type: array + databasesSelector: + description: Selector for a list of MSSQLDatabase to populate + databases. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + partnerServer: + description: A partner_server block as defined below. + items: + properties: + id: + description: The ID of a partner SQL server to include in + the failover group. + type: string + idRef: + description: Reference to a MSSQLServer to populate id. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is + 'Required', which means the reconcile will fail + if the reference cannot be resolved. 'Optional' + means this reference will be a no-op if it cannot + be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference + should be resolved. The default is 'IfNotPresent', + which will attempt to resolve the reference only + when the corresponding field is not present. Use + 'Always' to resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + idSelector: + description: Selector for a MSSQLServer to populate id. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with + the same controller reference as the selecting object + is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching + labels is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution + of this reference is required. The default is + 'Required', which means the reconcile will fail + if the reference cannot be resolved. 'Optional' + means this reference will be a no-op if it cannot + be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference + should be resolved. The default is 'IfNotPresent', + which will attempt to resolve the reference only + when the corresponding field is not present. Use + 'Always' to resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + type: array + readWriteEndpointFailoverPolicy: + description: A read_write_endpoint_failover_policy block as defined + below. + items: + properties: + graceMinutes: + description: The grace period in minutes, before failover + with data loss is attempted for the read-write endpoint. + Required when mode is Automatic. + type: number + mode: + description: The failover policy of the read-write endpoint + for the failover group. Possible values are Automatic + or Manual. + type: string + type: object + type: array + readonlyEndpointFailoverPolicyEnabled: + description: Whether failover is enabled for the readonly endpoint. + Defaults to false. + type: boolean + serverId: + description: The ID of the primary SQL Server on which to create + the failover group. Changing this forces a new resource to be + created. + type: string + serverIdRef: + description: Reference to a MSSQLServer to populate serverId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverIdSelector: + description: Selector for a MSSQLServer to populate serverId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + partnerServer: + description: A partner_server block as defined below. + items: + type: object + type: array + readWriteEndpointFailoverPolicy: + description: A read_write_endpoint_failover_policy block as defined + below. + items: + properties: + graceMinutes: + description: The grace period in minutes, before failover + with data loss is attempted for the read-write endpoint. + Required when mode is Automatic. + type: number + mode: + description: The failover policy of the read-write endpoint + for the failover group. Possible values are Automatic + or Manual. + type: string + type: object + type: array + readonlyEndpointFailoverPolicyEnabled: + description: Whether failover is enabled for the readonly endpoint. + Defaults to false. + type: boolean + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.partnerServer is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.partnerServer) + || (has(self.initProvider) && has(self.initProvider.partnerServer))' + - message: spec.forProvider.readWriteEndpointFailoverPolicy is a required + parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.readWriteEndpointFailoverPolicy) + || (has(self.initProvider) && has(self.initProvider.readWriteEndpointFailoverPolicy))' + status: + description: MSSQLFailoverGroupStatus defines the observed state of MSSQLFailoverGroup. + properties: + atProvider: + properties: + databases: + description: A set of database names to include in the failover + group. + items: + type: string + type: array + id: + description: The ID of the Failover Group. + type: string + partnerServer: + description: A partner_server block as defined below. + items: + properties: + id: + description: The ID of a partner SQL server to include in + the failover group. + type: string + location: + description: The location of the partner server. + type: string + role: + description: The replication role of the partner server. + Possible values include Primary or Secondary. + type: string + type: object + type: array + readWriteEndpointFailoverPolicy: + description: A read_write_endpoint_failover_policy block as defined + below. + items: + properties: + graceMinutes: + description: The grace period in minutes, before failover + with data loss is attempted for the read-write endpoint. + Required when mode is Automatic. + type: number + mode: + description: The failover policy of the read-write endpoint + for the failover group. Possible values are Automatic + or Manual. + type: string + type: object + type: array + readonlyEndpointFailoverPolicyEnabled: + description: Whether failover is enabled for the readonly endpoint. + Defaults to false. + type: boolean + serverId: + description: The ID of the primary SQL Server on which to create + the failover group. Changing this forces a new resource to be + created. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlfirewallrules.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlfirewallrules.yaml new file mode 100644 index 000000000..14b794ddb --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlfirewallrules.yaml @@ -0,0 +1,411 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlfirewallrules.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLFirewallRule + listKind: MSSQLFirewallRuleList + plural: mssqlfirewallrules + singular: mssqlfirewallrule + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLFirewallRule is the Schema for the MSSQLFirewallRules API. + Manages an Azure SQL Firewall Rule. + 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: MSSQLFirewallRuleSpec defines the desired state of MSSQLFirewallRule + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + endIpAddress: + description: The ending IP address to allow through the firewall + for this rule. + type: string + serverId: + description: The resource ID of the SQL Server on which to create + the Firewall Rule. Changing this forces a new resource to be + created. + type: string + serverIdRef: + description: Reference to a MSSQLServer in sql to populate serverId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverIdSelector: + description: Selector for a MSSQLServer in sql to populate serverId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + startIpAddress: + description: The starting IP address to allow through the firewall + for this rule. + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + endIpAddress: + description: The ending IP address to allow through the firewall + for this rule. + type: string + startIpAddress: + description: The starting IP address to allow through the firewall + for this rule. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.endIpAddress is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.endIpAddress) + || (has(self.initProvider) && has(self.initProvider.endIpAddress))' + - message: spec.forProvider.startIpAddress is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.startIpAddress) + || (has(self.initProvider) && has(self.initProvider.startIpAddress))' + status: + description: MSSQLFirewallRuleStatus defines the observed state of MSSQLFirewallRule. + properties: + atProvider: + properties: + endIpAddress: + description: The ending IP address to allow through the firewall + for this rule. + type: string + id: + description: The SQL Firewall Rule ID. + type: string + serverId: + description: The resource ID of the SQL Server on which to create + the Firewall Rule. Changing this forces a new resource to be + created. + type: string + startIpAddress: + description: The starting IP address to allow through the firewall + for this rule. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqljobagents.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqljobagents.yaml new file mode 100644 index 000000000..3252d9867 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqljobagents.yaml @@ -0,0 +1,429 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqljobagents.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLJobAgent + listKind: MSSQLJobAgentList + plural: mssqljobagents + singular: mssqljobagent + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLJobAgent is the Schema for the MSSQLJobAgents API. Manages + an Elastic Job Agent. + 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: MSSQLJobAgentSpec defines the desired state of MSSQLJobAgent + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + databaseId: + description: The ID of the database to store metadata for the + Elastic Job Agent. Changing this forces a new Elastic Job Agent + to be created. + type: string + databaseIdRef: + description: Reference to a MSSQLDatabase in sql to populate databaseId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + databaseIdSelector: + description: Selector for a MSSQLDatabase in sql to populate databaseId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + location: + description: The Azure Region where the Elastic Job Agent should + exist. Changing this forces a new Elastic Job Agent to be created. + type: string + name: + description: The name which should be used for this Elastic Job + Agent. Changing this forces a new Elastic Job Agent to be created. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags which should be assigned to the + Database. + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + location: + description: The Azure Region where the Elastic Job Agent should + exist. Changing this forces a new Elastic Job Agent to be created. + type: string + name: + description: The name which should be used for this Elastic Job + Agent. Changing this forces a new Elastic Job Agent to be created. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags which should be assigned to the + Database. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: MSSQLJobAgentStatus defines the observed state of MSSQLJobAgent. + properties: + atProvider: + properties: + databaseId: + description: The ID of the database to store metadata for the + Elastic Job Agent. Changing this forces a new Elastic Job Agent + to be created. + type: string + id: + description: The ID of the Elastic Job Agent. + type: string + location: + description: The Azure Region where the Elastic Job Agent should + exist. Changing this forces a new Elastic Job Agent to be created. + type: string + name: + description: The name which should be used for this Elastic Job + Agent. Changing this forces a new Elastic Job Agent to be created. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags which should be assigned to the + Database. + type: object + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqljobcredentials.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqljobcredentials.yaml new file mode 100644 index 000000000..bea52925c --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqljobcredentials.yaml @@ -0,0 +1,410 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqljobcredentials.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLJobCredential + listKind: MSSQLJobCredentialList + plural: mssqljobcredentials + singular: mssqljobcredential + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLJobCredential is the Schema for the MSSQLJobCredentials + API. Manages an Elastic Job Credential. + 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: MSSQLJobCredentialSpec defines the desired state of MSSQLJobCredential + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + jobAgentId: + description: The ID of the Elastic Job Agent. Changing this forces + a new Elastic Job Credential to be created. + type: string + jobAgentIdRef: + description: Reference to a MSSQLJobAgent in sql to populate jobAgentId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + jobAgentIdSelector: + description: Selector for a MSSQLJobAgent in sql to populate jobAgentId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + passwordSecretRef: + description: The password part of the credential. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + username: + description: The username part of the credential. + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + username: + description: The username part of the credential. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.passwordSecretRef is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.passwordSecretRef)' + - message: spec.forProvider.username is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.username) + || (has(self.initProvider) && has(self.initProvider.username))' + status: + description: MSSQLJobCredentialStatus defines the observed state of MSSQLJobCredential. + properties: + atProvider: + properties: + id: + description: The ID of the Elastic Job Credential. + type: string + jobAgentId: + description: The ID of the Elastic Job Agent. Changing this forces + a new Elastic Job Credential to be created. + type: string + username: + description: The username part of the credential. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanageddatabases.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanageddatabases.yaml new file mode 100644 index 000000000..486efecb0 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanageddatabases.yaml @@ -0,0 +1,466 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlmanageddatabases.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLManagedDatabase + listKind: MSSQLManagedDatabaseList + plural: mssqlmanageddatabases + singular: mssqlmanageddatabase + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLManagedDatabase is the Schema for the MSSQLManagedDatabases + API. Manages an Azure SQL Azure Managed Database. + 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: MSSQLManagedDatabaseSpec defines the desired state of MSSQLManagedDatabase + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + longTermRetentionPolicy: + description: A long_term_retention_policy block as defined below. + items: + properties: + monthlyRetention: + description: The monthly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 120 + months. e.g. P1Y, P1M, P4W or P30D. + type: string + weekOfYear: + description: The week of year to take the yearly backup. + Value has to be between 1 and 52. + type: number + weeklyRetention: + description: The weekly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 520 + weeks. e.g. P1Y, P1M, P1W or P7D. + type: string + yearlyRetention: + description: The yearly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 10 + years. e.g. P1Y, P12M, P52W or P365D. + type: string + type: object + type: array + managedInstanceId: + description: The ID of the Azure SQL Managed Instance on which + to create this Managed Database. Changing this forces a new + resource to be created. + type: string + managedInstanceIdRef: + description: Reference to a MSSQLManagedInstance to populate managedInstanceId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + managedInstanceIdSelector: + description: Selector for a MSSQLManagedInstance to populate managedInstanceId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + shortTermRetentionDays: + description: The backup retention period in days. This is how + many days Point-in-Time Restore will be supported. + type: number + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + longTermRetentionPolicy: + description: A long_term_retention_policy block as defined below. + items: + properties: + monthlyRetention: + description: The monthly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 120 + months. e.g. P1Y, P1M, P4W or P30D. + type: string + weekOfYear: + description: The week of year to take the yearly backup. + Value has to be between 1 and 52. + type: number + weeklyRetention: + description: The weekly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 520 + weeks. e.g. P1Y, P1M, P1W or P7D. + type: string + yearlyRetention: + description: The yearly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 10 + years. e.g. P1Y, P12M, P52W or P365D. + type: string + type: object + type: array + shortTermRetentionDays: + description: The backup retention period in days. This is how + many days Point-in-Time Restore will be supported. + type: number + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: MSSQLManagedDatabaseStatus defines the observed state of + MSSQLManagedDatabase. + properties: + atProvider: + properties: + id: + description: The Azure SQL Managed Database ID. + type: string + longTermRetentionPolicy: + description: A long_term_retention_policy block as defined below. + items: + properties: + monthlyRetention: + description: The monthly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 120 + months. e.g. P1Y, P1M, P4W or P30D. + type: string + weekOfYear: + description: The week of year to take the yearly backup. + Value has to be between 1 and 52. + type: number + weeklyRetention: + description: The weekly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 520 + weeks. e.g. P1Y, P1M, P1W or P7D. + type: string + yearlyRetention: + description: The yearly retention policy for an LTR backup + in an ISO 8601 format. Valid value is between 1 to 10 + years. e.g. P1Y, P12M, P52W or P365D. + type: string + type: object + type: array + managedInstanceId: + description: The ID of the Azure SQL Managed Instance on which + to create this Managed Database. Changing this forces a new + resource to be created. + type: string + shortTermRetentionDays: + description: The backup retention period in days. This is how + many days Point-in-Time Restore will be supported. + type: number + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanagedinstanceactivedirectoryadministrators.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanagedinstanceactivedirectoryadministrators.yaml new file mode 100644 index 000000000..e96925f18 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanagedinstanceactivedirectoryadministrators.yaml @@ -0,0 +1,440 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlmanagedinstanceactivedirectoryadministrators.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLManagedInstanceActiveDirectoryAdministrator + listKind: MSSQLManagedInstanceActiveDirectoryAdministratorList + plural: mssqlmanagedinstanceactivedirectoryadministrators + singular: mssqlmanagedinstanceactivedirectoryadministrator + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLManagedInstanceActiveDirectoryAdministrator is the Schema + for the MSSQLManagedInstanceActiveDirectoryAdministrators API. Manages an + Active Directory Administrator on a Microsoft Azure SQL Managed Instance + 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: MSSQLManagedInstanceActiveDirectoryAdministratorSpec defines + the desired state of MSSQLManagedInstanceActiveDirectoryAdministrator + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + azureadAuthenticationOnly: + description: When true, only permit logins from AAD users and + administrators. When false, also allow local database users. + type: boolean + loginUsername: + description: The login name of the principal to set as the Managed + Instance Administrator. + type: string + managedInstanceId: + description: The ID of the Azure SQL Managed Instance for which + to set the administrator. Changing this forces a new resource + to be created. + type: string + managedInstanceIdRef: + description: Reference to a MSSQLManagedInstance to populate managedInstanceId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + managedInstanceIdSelector: + description: Selector for a MSSQLManagedInstance to populate managedInstanceId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + objectId: + description: The Object ID of the principal to set as the Managed + Instance Administrator. + type: string + tenantId: + description: The Azure Active Directory Tenant ID. + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + azureadAuthenticationOnly: + description: When true, only permit logins from AAD users and + administrators. When false, also allow local database users. + type: boolean + loginUsername: + description: The login name of the principal to set as the Managed + Instance Administrator. + type: string + objectId: + description: The Object ID of the principal to set as the Managed + Instance Administrator. + type: string + tenantId: + description: The Azure Active Directory Tenant ID. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.loginUsername is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.loginUsername) + || (has(self.initProvider) && has(self.initProvider.loginUsername))' + - message: spec.forProvider.objectId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.objectId) + || (has(self.initProvider) && has(self.initProvider.objectId))' + - message: spec.forProvider.tenantId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.tenantId) + || (has(self.initProvider) && has(self.initProvider.tenantId))' + status: + description: MSSQLManagedInstanceActiveDirectoryAdministratorStatus defines + the observed state of MSSQLManagedInstanceActiveDirectoryAdministrator. + properties: + atProvider: + properties: + azureadAuthenticationOnly: + description: When true, only permit logins from AAD users and + administrators. When false, also allow local database users. + type: boolean + id: + description: The ID of the SQL Managed Instance Active Directory + Administrator. + type: string + loginUsername: + description: The login name of the principal to set as the Managed + Instance Administrator. + type: string + managedInstanceId: + description: The ID of the Azure SQL Managed Instance for which + to set the administrator. Changing this forces a new resource + to be created. + type: string + objectId: + description: The Object ID of the principal to set as the Managed + Instance Administrator. + type: string + tenantId: + description: The Azure Active Directory Tenant ID. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanagedinstancefailovergroups.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanagedinstancefailovergroups.yaml new file mode 100644 index 000000000..05645a45e --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanagedinstancefailovergroups.yaml @@ -0,0 +1,556 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlmanagedinstancefailovergroups.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLManagedInstanceFailoverGroup + listKind: MSSQLManagedInstanceFailoverGroupList + plural: mssqlmanagedinstancefailovergroups + singular: mssqlmanagedinstancefailovergroup + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLManagedInstanceFailoverGroup is the Schema for the MSSQLManagedInstanceFailoverGroups + API. Manages an Azure SQL Managed Instance Failover Group. + 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: MSSQLManagedInstanceFailoverGroupSpec defines the desired + state of MSSQLManagedInstanceFailoverGroup + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + location: + description: The Azure Region where the Managed Instance Failover + Group should exist. Changing this forces a new resource to be + created. + type: string + managedInstanceId: + description: The ID of the Azure SQL Managed Instance which will + be replicated using a Managed Instance Failover Group. Changing + this forces a new resource to be created. + type: string + managedInstanceIdRef: + description: Reference to a MSSQLManagedInstance to populate managedInstanceId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + managedInstanceIdSelector: + description: Selector for a MSSQLManagedInstance to populate managedInstanceId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + partnerManagedInstanceId: + description: The ID of the Azure SQL Managed Instance which will + be replicated to. Changing this forces a new resource to be + created. + type: string + partnerManagedInstanceIdRef: + description: Reference to a MSSQLManagedInstance to populate partnerManagedInstanceId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + partnerManagedInstanceIdSelector: + description: Selector for a MSSQLManagedInstance to populate partnerManagedInstanceId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + readWriteEndpointFailoverPolicy: + description: A read_write_endpoint_failover_policy block as defined + below. + items: + properties: + graceMinutes: + description: Applies only if mode is Automatic. The grace + period in minutes before failover with data loss is attempted. + type: number + mode: + description: The failover mode. Possible values are Automatic + or Manual. + type: string + type: object + type: array + readonlyEndpointFailoverPolicyEnabled: + description: Failover policy for the read-only endpoint. Defaults + to true. + type: boolean + required: + - location + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + readWriteEndpointFailoverPolicy: + description: A read_write_endpoint_failover_policy block as defined + below. + items: + properties: + graceMinutes: + description: Applies only if mode is Automatic. The grace + period in minutes before failover with data loss is attempted. + type: number + mode: + description: The failover mode. Possible values are Automatic + or Manual. + type: string + type: object + type: array + readonlyEndpointFailoverPolicyEnabled: + description: Failover policy for the read-only endpoint. Defaults + to true. + type: boolean + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.readWriteEndpointFailoverPolicy is a required + parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.readWriteEndpointFailoverPolicy) + || (has(self.initProvider) && has(self.initProvider.readWriteEndpointFailoverPolicy))' + status: + description: MSSQLManagedInstanceFailoverGroupStatus defines the observed + state of MSSQLManagedInstanceFailoverGroup. + properties: + atProvider: + properties: + id: + description: The ID of the Managed Instance Failover Group. + type: string + location: + description: The Azure Region where the Managed Instance Failover + Group should exist. Changing this forces a new resource to be + created. + type: string + managedInstanceId: + description: The ID of the Azure SQL Managed Instance which will + be replicated using a Managed Instance Failover Group. Changing + this forces a new resource to be created. + type: string + partnerManagedInstanceId: + description: The ID of the Azure SQL Managed Instance which will + be replicated to. Changing this forces a new resource to be + created. + type: string + partnerRegion: + description: A partner_region block as defined below. + items: + properties: + location: + description: The Azure Region where the Managed Instance + Failover Group partner exists. + type: string + role: + description: The partner replication role of the Managed + Instance Failover Group. + type: string + type: object + type: array + readWriteEndpointFailoverPolicy: + description: A read_write_endpoint_failover_policy block as defined + below. + items: + properties: + graceMinutes: + description: Applies only if mode is Automatic. The grace + period in minutes before failover with data loss is attempted. + type: number + mode: + description: The failover mode. Possible values are Automatic + or Manual. + type: string + type: object + type: array + readonlyEndpointFailoverPolicyEnabled: + description: Failover policy for the read-only endpoint. Defaults + to true. + type: boolean + role: + description: The local replication role of the Managed Instance + Failover Group. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanagedinstances.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanagedinstances.yaml new file mode 100644 index 000000000..f38731109 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanagedinstances.yaml @@ -0,0 +1,858 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlmanagedinstances.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLManagedInstance + listKind: MSSQLManagedInstanceList + plural: mssqlmanagedinstances + singular: mssqlmanagedinstance + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLManagedInstance is the Schema for the MSSQLManagedInstances + API. Manages a Microsoft SQL Azure Managed Instance. + 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: MSSQLManagedInstanceSpec defines the desired state of MSSQLManagedInstance + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + administratorLogin: + description: The administrator login name for the new SQL Managed + Instance. Changing this forces a new resource to be created. + type: string + administratorLoginPasswordSecretRef: + description: The password associated with the administrator_login + user. Needs to comply with Azure's Password Policy + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + collation: + description: Specifies how the SQL Managed Instance will be collated. + Default value is SQL_Latin1_General_CP1_CI_AS. Changing this + forces a new resource to be created. + type: string + dnsZonePartnerId: + description: The ID of the SQL Managed Instance which will share + the DNS zone. This is a prerequisite for creating an azurerm_sql_managed_instance_failover_group. + Setting this after creation forces a new resource to be created. + type: string + dnsZonePartnerIdRef: + description: Reference to a MSSQLManagedInstance to populate dnsZonePartnerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + dnsZonePartnerIdSelector: + description: Selector for a MSSQLManagedInstance to populate dnsZonePartnerId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + identity: + description: An identity block as defined below. + items: + properties: + identityIds: + description: Specifies a list of User Assigned Managed Identity + IDs to be assigned to this SQL Managed Instance. Required + when type is set to UserAssigned. + items: + type: string + type: array + type: + description: Specifies the type of Managed Service Identity + that should be configured on this SQL Managed Instance. + Possible values are SystemAssigned, UserAssigned. + type: string + type: object + type: array + licenseType: + description: What type of license the Managed Instance will use. + Possible values are LicenseIncluded and BasePrice. + type: string + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + maintenanceConfigurationName: + description: The name of the Public Maintenance Configuration + window to apply to the SQL Managed Instance. Valid values include + SQL_Default or an Azure Location in the format SQL_{Location}_MI_{Size}(for + example SQL_EastUS_MI_1). Defaults to SQL_Default. + type: string + minimumTlsVersion: + description: The Minimum TLS Version. Default value is 1.2 Valid + values include 1.0, 1.1, 1.2. + type: string + proxyOverride: + description: Specifies how the SQL Managed Instance will be accessed. + Default value is Default. Valid values include Default, Proxy, + and Redirect. + type: string + publicDataEndpointEnabled: + description: Is the public data endpoint enabled? Default value + is false. + type: boolean + resourceGroupName: + description: The name of the resource group in which to create + the SQL Managed Instance. Changing this forces a new resource + to be created. + type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + skuName: + description: Specifies the SKU Name for the SQL Managed Instance. + Valid values include GP_Gen4, GP_Gen5, GP_Gen8IM, GP_Gen8IH, + BC_Gen4, BC_Gen5, BC_Gen8IM or BC_Gen8IH. + type: string + storageAccountType: + description: Specifies the storage account type used to store + backups for this database. Changing this forces a new resource + to be created. Possible values are GRS, LRS and ZRS. The default + value is GRS. + type: string + storageSizeInGb: + description: Maximum storage space for the SQL Managed instance. + This should be a multiple of 32 (GB). + type: number + subnetId: + description: The subnet resource id that the SQL Managed Instance + will be associated with. Changing this forces a new resource + to be created. + type: string + subnetIdRef: + description: Reference to a Subnet in network to populate subnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + subnetIdSelector: + description: Selector for a Subnet in network to populate subnetId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + timezoneId: + description: The TimeZone ID that the SQL Managed Instance will + be operating in. Default value is UTC. Changing this forces + a new resource to be created. + type: string + vcores: + description: Number of cores that should be assigned to the SQL + Managed Instance. Values can be 8, 16, or 24 for Gen4 SKUs, + or 4, 8, 16, 24, 32, 40, 64, or 80 for Gen5 SKUs. + type: number + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + administratorLogin: + description: The administrator login name for the new SQL Managed + Instance. Changing this forces a new resource to be created. + type: string + collation: + description: Specifies how the SQL Managed Instance will be collated. + Default value is SQL_Latin1_General_CP1_CI_AS. Changing this + forces a new resource to be created. + type: string + identity: + description: An identity block as defined below. + items: + properties: + identityIds: + description: Specifies a list of User Assigned Managed Identity + IDs to be assigned to this SQL Managed Instance. Required + when type is set to UserAssigned. + items: + type: string + type: array + type: + description: Specifies the type of Managed Service Identity + that should be configured on this SQL Managed Instance. + Possible values are SystemAssigned, UserAssigned. + type: string + type: object + type: array + licenseType: + description: What type of license the Managed Instance will use. + Possible values are LicenseIncluded and BasePrice. + type: string + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + maintenanceConfigurationName: + description: The name of the Public Maintenance Configuration + window to apply to the SQL Managed Instance. Valid values include + SQL_Default or an Azure Location in the format SQL_{Location}_MI_{Size}(for + example SQL_EastUS_MI_1). Defaults to SQL_Default. + type: string + minimumTlsVersion: + description: The Minimum TLS Version. Default value is 1.2 Valid + values include 1.0, 1.1, 1.2. + type: string + proxyOverride: + description: Specifies how the SQL Managed Instance will be accessed. + Default value is Default. Valid values include Default, Proxy, + and Redirect. + type: string + publicDataEndpointEnabled: + description: Is the public data endpoint enabled? Default value + is false. + type: boolean + skuName: + description: Specifies the SKU Name for the SQL Managed Instance. + Valid values include GP_Gen4, GP_Gen5, GP_Gen8IM, GP_Gen8IH, + BC_Gen4, BC_Gen5, BC_Gen8IM or BC_Gen8IH. + type: string + storageAccountType: + description: Specifies the storage account type used to store + backups for this database. Changing this forces a new resource + to be created. Possible values are GRS, LRS and ZRS. The default + value is GRS. + type: string + storageSizeInGb: + description: Maximum storage space for the SQL Managed instance. + This should be a multiple of 32 (GB). + type: number + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + timezoneId: + description: The TimeZone ID that the SQL Managed Instance will + be operating in. Default value is UTC. Changing this forces + a new resource to be created. + type: string + vcores: + description: Number of cores that should be assigned to the SQL + Managed Instance. Values can be 8, 16, or 24 for Gen4 SKUs, + or 4, 8, 16, 24, 32, 40, 64, or 80 for Gen5 SKUs. + type: number + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.administratorLogin is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.administratorLogin) + || (has(self.initProvider) && has(self.initProvider.administratorLogin))' + - message: spec.forProvider.administratorLoginPasswordSecretRef is a required + parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.administratorLoginPasswordSecretRef)' + - message: spec.forProvider.licenseType is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.licenseType) + || (has(self.initProvider) && has(self.initProvider.licenseType))' + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + - message: spec.forProvider.skuName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.skuName) + || (has(self.initProvider) && has(self.initProvider.skuName))' + - message: spec.forProvider.storageSizeInGb is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.storageSizeInGb) + || (has(self.initProvider) && has(self.initProvider.storageSizeInGb))' + - message: spec.forProvider.vcores is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vcores) + || (has(self.initProvider) && has(self.initProvider.vcores))' + status: + description: MSSQLManagedInstanceStatus defines the observed state of + MSSQLManagedInstance. + properties: + atProvider: + properties: + administratorLogin: + description: The administrator login name for the new SQL Managed + Instance. Changing this forces a new resource to be created. + type: string + collation: + description: Specifies how the SQL Managed Instance will be collated. + Default value is SQL_Latin1_General_CP1_CI_AS. Changing this + forces a new resource to be created. + type: string + dnsZonePartnerId: + description: The ID of the SQL Managed Instance which will share + the DNS zone. This is a prerequisite for creating an azurerm_sql_managed_instance_failover_group. + Setting this after creation forces a new resource to be created. + type: string + fqdn: + description: The fully qualified domain name of the Azure Managed + SQL Instance + type: string + id: + description: The SQL Managed Instance ID. + type: string + identity: + description: An identity block as defined below. + items: + properties: + identityIds: + description: Specifies a list of User Assigned Managed Identity + IDs to be assigned to this SQL Managed Instance. Required + when type is set to UserAssigned. + items: + type: string + type: array + principalId: + description: The Principal ID for the Service Principal + associated with the Identity of this SQL Managed Instance. + type: string + tenantId: + description: The Tenant ID for the Service Principal associated + with the Identity of this SQL Managed Instance. + type: string + type: + description: Specifies the type of Managed Service Identity + that should be configured on this SQL Managed Instance. + Possible values are SystemAssigned, UserAssigned. + type: string + type: object + type: array + licenseType: + description: What type of license the Managed Instance will use. + Possible values are LicenseIncluded and BasePrice. + type: string + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + maintenanceConfigurationName: + description: The name of the Public Maintenance Configuration + window to apply to the SQL Managed Instance. Valid values include + SQL_Default or an Azure Location in the format SQL_{Location}_MI_{Size}(for + example SQL_EastUS_MI_1). Defaults to SQL_Default. + type: string + minimumTlsVersion: + description: The Minimum TLS Version. Default value is 1.2 Valid + values include 1.0, 1.1, 1.2. + type: string + proxyOverride: + description: Specifies how the SQL Managed Instance will be accessed. + Default value is Default. Valid values include Default, Proxy, + and Redirect. + type: string + publicDataEndpointEnabled: + description: Is the public data endpoint enabled? Default value + is false. + type: boolean + resourceGroupName: + description: The name of the resource group in which to create + the SQL Managed Instance. Changing this forces a new resource + to be created. + type: string + skuName: + description: Specifies the SKU Name for the SQL Managed Instance. + Valid values include GP_Gen4, GP_Gen5, GP_Gen8IM, GP_Gen8IH, + BC_Gen4, BC_Gen5, BC_Gen8IM or BC_Gen8IH. + type: string + storageAccountType: + description: Specifies the storage account type used to store + backups for this database. Changing this forces a new resource + to be created. Possible values are GRS, LRS and ZRS. The default + value is GRS. + type: string + storageSizeInGb: + description: Maximum storage space for the SQL Managed instance. + This should be a multiple of 32 (GB). + type: number + subnetId: + description: The subnet resource id that the SQL Managed Instance + will be associated with. Changing this forces a new resource + to be created. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + timezoneId: + description: The TimeZone ID that the SQL Managed Instance will + be operating in. Default value is UTC. Changing this forces + a new resource to be created. + type: string + vcores: + description: Number of cores that should be assigned to the SQL + Managed Instance. Values can be 8, 16, or 24 for Gen4 SKUs, + or 4, 8, 16, 24, 32, 40, 64, or 80 for Gen5 SKUs. + type: number + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanagedinstancevulnerabilityassessments.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanagedinstancevulnerabilityassessments.yaml new file mode 100644 index 000000000..e7e866776 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlmanagedinstancevulnerabilityassessments.yaml @@ -0,0 +1,501 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlmanagedinstancevulnerabilityassessments.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLManagedInstanceVulnerabilityAssessment + listKind: MSSQLManagedInstanceVulnerabilityAssessmentList + plural: mssqlmanagedinstancevulnerabilityassessments + singular: mssqlmanagedinstancevulnerabilityassessment + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLManagedInstanceVulnerabilityAssessment is the Schema for + the MSSQLManagedInstanceVulnerabilityAssessments API. Manages the Vulnerability + Assessment for an MS Managed Instance. + 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: MSSQLManagedInstanceVulnerabilityAssessmentSpec defines the + desired state of MSSQLManagedInstanceVulnerabilityAssessment + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + managedInstanceId: + description: The id of the MS SQL Managed Instance. Changing this + forces a new resource to be created. + type: string + managedInstanceIdRef: + description: Reference to a MSSQLManagedInstance to populate managedInstanceId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + managedInstanceIdSelector: + description: Selector for a MSSQLManagedInstance to populate managedInstanceId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + recurringScans: + description: The recurring scans settings. The recurring_scans + block supports fields documented below. + items: + properties: + emailSubscriptionAdmins: + description: Boolean flag which specifies if the schedule + scan notification will be sent to the subscription administrators. + Defaults to true. + type: boolean + emails: + description: Specifies an array of e-mail addresses to which + the scan notification is sent. + items: + type: string + type: array + enabled: + description: Boolean flag which specifies if recurring scans + is enabled or disabled. Defaults to false. + type: boolean + type: object + type: array + storageAccountAccessKeySecretRef: + description: Specifies the identifier key of the storage account + for vulnerability assessment scan results. If storage_container_sas_key + isn't specified, storage_account_access_key is required. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + storageContainerPath: + description: A blob storage container path to hold the scan results + (e.g. https://myStorage.blob.core.windows.net/VaScans/). + type: string + storageContainerSasKeySecretRef: + description: A shared access signature (SAS Key) that has write + access to the blob container specified in storage_container_path + parameter. If storage_account_access_key isn't specified, storage_container_sas_key + is required. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + recurringScans: + description: The recurring scans settings. The recurring_scans + block supports fields documented below. + items: + properties: + emailSubscriptionAdmins: + description: Boolean flag which specifies if the schedule + scan notification will be sent to the subscription administrators. + Defaults to true. + type: boolean + emails: + description: Specifies an array of e-mail addresses to which + the scan notification is sent. + items: + type: string + type: array + enabled: + description: Boolean flag which specifies if recurring scans + is enabled or disabled. Defaults to false. + type: boolean + type: object + type: array + storageContainerPath: + description: A blob storage container path to hold the scan results + (e.g. https://myStorage.blob.core.windows.net/VaScans/). + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.storageContainerPath is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.storageContainerPath) + || (has(self.initProvider) && has(self.initProvider.storageContainerPath))' + status: + description: MSSQLManagedInstanceVulnerabilityAssessmentStatus defines + the observed state of MSSQLManagedInstanceVulnerabilityAssessment. + properties: + atProvider: + properties: + id: + description: The ID of the Vulnerability Assessment. + type: string + managedInstanceId: + description: The id of the MS SQL Managed Instance. Changing this + forces a new resource to be created. + type: string + recurringScans: + description: The recurring scans settings. The recurring_scans + block supports fields documented below. + items: + properties: + emailSubscriptionAdmins: + description: Boolean flag which specifies if the schedule + scan notification will be sent to the subscription administrators. + Defaults to true. + type: boolean + emails: + description: Specifies an array of e-mail addresses to which + the scan notification is sent. + items: + type: string + type: array + enabled: + description: Boolean flag which specifies if recurring scans + is enabled or disabled. Defaults to false. + type: boolean + type: object + type: array + storageContainerPath: + description: A blob storage container path to hold the scan results + (e.g. https://myStorage.blob.core.windows.net/VaScans/). + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqloutboundfirewallrules.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqloutboundfirewallrules.yaml new file mode 100644 index 000000000..51bf4096c --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqloutboundfirewallrules.yaml @@ -0,0 +1,379 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqloutboundfirewallrules.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLOutboundFirewallRule + listKind: MSSQLOutboundFirewallRuleList + plural: mssqloutboundfirewallrules + singular: mssqloutboundfirewallrule + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLOutboundFirewallRule is the Schema for the MSSQLOutboundFirewallRules + API. Manages an Azure SQL Outbound Firewall Rule. + 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: MSSQLOutboundFirewallRuleSpec defines the desired state of + MSSQLOutboundFirewallRule + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + serverId: + description: The resource ID of the SQL Server on which to create + the Outbound Firewall Rule. Changing this forces a new resource + to be created. + type: string + serverIdRef: + description: Reference to a MSSQLServer to populate serverId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverIdSelector: + description: Selector for a MSSQLServer to populate serverId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: MSSQLOutboundFirewallRuleStatus defines the observed state + of MSSQLOutboundFirewallRule. + properties: + atProvider: + properties: + id: + description: The SQL Outbound Firewall Rule ID. + type: string + serverId: + description: The resource ID of the SQL Server on which to create + the Outbound Firewall Rule. Changing this forces a new resource + to be created. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlserverdnsaliases.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlserverdnsaliases.yaml new file mode 100644 index 000000000..a8e006767 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlserverdnsaliases.yaml @@ -0,0 +1,378 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlserverdnsaliases.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLServerDNSAlias + listKind: MSSQLServerDNSAliasList + plural: mssqlserverdnsaliases + singular: mssqlserverdnsalias + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLServerDNSAlias is the Schema for the MSSQLServerDNSAliass + API. Manages a MS SQL Server DNS Alias. + 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: MSSQLServerDNSAliasSpec defines the desired state of MSSQLServerDNSAlias + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + mssqlServerId: + description: The ID of the mssql server. Changing this forces + a new MSSQL Server DNS Alias to be created. + type: string + mssqlServerIdRef: + description: Reference to a MSSQLServer to populate mssqlServerId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + mssqlServerIdSelector: + description: Selector for a MSSQLServer to populate mssqlServerId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: MSSQLServerDNSAliasStatus defines the observed state of MSSQLServerDNSAlias. + properties: + atProvider: + properties: + dnsRecord: + description: The fully qualified DNS record for alias. + type: string + id: + description: The ID of the MSSQL Server DNS Alias. + type: string + mssqlServerId: + description: The ID of the mssql server. Changing this forces + a new MSSQL Server DNS Alias to be created. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlservermicrosoftsupportauditingpolicies.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlservermicrosoftsupportauditingpolicies.yaml new file mode 100644 index 000000000..36deaebf4 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlservermicrosoftsupportauditingpolicies.yaml @@ -0,0 +1,525 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlservermicrosoftsupportauditingpolicies.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLServerMicrosoftSupportAuditingPolicy + listKind: MSSQLServerMicrosoftSupportAuditingPolicyList + plural: mssqlservermicrosoftsupportauditingpolicies + singular: mssqlservermicrosoftsupportauditingpolicy + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLServerMicrosoftSupportAuditingPolicy is the Schema for the + MSSQLServerMicrosoftSupportAuditingPolicys API. Manages a MS SQL Database + Extended Auditing Policy. + 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: MSSQLServerMicrosoftSupportAuditingPolicySpec defines the + desired state of MSSQLServerMicrosoftSupportAuditingPolicy + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + databaseId: + description: The ID of the SQL database to set the extended auditing + policy. Changing this forces a new resource to be created. + type: string + databaseIdRef: + description: Reference to a MSSQLDatabase in sql to populate databaseId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + databaseIdSelector: + description: Selector for a MSSQLDatabase in sql to populate databaseId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + enabled: + description: Whether to enable the extended auditing policy. Possible + values are true and false. Defaults to true. + type: boolean + logMonitoringEnabled: + description: Enable audit events to Azure Monitor? Defaults to + true. + type: boolean + retentionInDays: + description: The number of days to retain logs for in the storage + account. Defaults to 0. + type: number + storageAccountAccessKeyIsSecondary: + description: Is storage_account_access_key value the storage's + secondary key? + type: boolean + storageAccountAccessKeySecretRef: + description: The access key to use for the auditing storage account. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + storageEndpoint: + description: The blob storage endpoint (e.g. https://example.blob.core.windows.net). + This blob storage will hold all extended auditing logs. + type: string + storageEndpointRef: + description: Reference to a Account in storage to populate storageEndpoint. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + storageEndpointSelector: + description: Selector for a Account in storage to populate storageEndpoint. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + enabled: + description: Whether to enable the extended auditing policy. Possible + values are true and false. Defaults to true. + type: boolean + logMonitoringEnabled: + description: Enable audit events to Azure Monitor? Defaults to + true. + type: boolean + retentionInDays: + description: The number of days to retain logs for in the storage + account. Defaults to 0. + type: number + storageAccountAccessKeyIsSecondary: + description: Is storage_account_access_key value the storage's + secondary key? + type: boolean + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: MSSQLServerMicrosoftSupportAuditingPolicyStatus defines the + observed state of MSSQLServerMicrosoftSupportAuditingPolicy. + properties: + atProvider: + properties: + databaseId: + description: The ID of the SQL database to set the extended auditing + policy. Changing this forces a new resource to be created. + type: string + enabled: + description: Whether to enable the extended auditing policy. Possible + values are true and false. Defaults to true. + type: boolean + id: + description: The ID of the MS SQL Database Extended Auditing Policy. + type: string + logMonitoringEnabled: + description: Enable audit events to Azure Monitor? Defaults to + true. + type: boolean + retentionInDays: + description: The number of days to retain logs for in the storage + account. Defaults to 0. + type: number + storageAccountAccessKeyIsSecondary: + description: Is storage_account_access_key value the storage's + secondary key? + type: boolean + storageEndpoint: + description: The blob storage endpoint (e.g. https://example.blob.core.windows.net). + This blob storage will hold all extended auditing logs. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlservers.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlservers.yaml new file mode 100644 index 000000000..aec605eef --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlservers.yaml @@ -0,0 +1,762 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlservers.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLServer + listKind: MSSQLServerList + plural: mssqlservers + singular: mssqlserver + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLServer is the Schema for the MSSQLServers API. Manages a + Microsoft SQL Azure Database Server. + 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: MSSQLServerSpec defines the desired state of MSSQLServer + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + administratorLogin: + description: The administrator login name for the new server. + Required unless azuread_authentication_only in the azuread_administrator + block is true. When omitted, Azure will generate a default username + which cannot be subsequently changed. Changing this forces a + new resource to be created. + type: string + administratorLoginPasswordSecretRef: + description: The password associated with the administrator_login + user. Needs to comply with Azure's Password Policy. Required + unless azuread_authentication_only in the azuread_administrator + block is true. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + azureadAdministrator: + description: An azuread_administrator block as defined below. + items: + properties: + azureadAuthenticationOnly: + description: Specifies whether only AD Users and administrators + (e.g. azuread_administrator.0.login_username) can be used + to login, or also local database users (e.g. administrator_login). + When true, the administrator_login and administrator_login_password + properties can be omitted. + type: boolean + loginUsername: + description: The login username of the Azure AD Administrator + of this SQL Server. + type: string + objectId: + description: The object id of the Azure AD Administrator + of this SQL Server. + type: string + tenantId: + description: The tenant id of the Azure AD Administrator + of this SQL Server. + type: string + type: object + type: array + connectionPolicy: + description: The connection policy the server will use. Possible + values are Default, Proxy, and Redirect. Defaults to Default. + type: string + identity: + description: An identity block as defined below. + items: + properties: + identityIds: + description: Specifies a list of User Assigned Managed Identity + IDs to be assigned to this SQL Server. + items: + type: string + type: array + type: + description: Specifies the type of Managed Service Identity + that should be configured on this SQL Server. Possible + values are SystemAssigned, UserAssigned. + type: string + type: object + type: array + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + minimumTlsVersion: + description: 'The Minimum TLS Version for all SQL Database and + SQL Data Warehouse databases associated with the server. Valid + values are: 1.0, 1.1 , 1.2 and Disabled. Defaults to 1.2.' + type: string + outboundNetworkRestrictionEnabled: + description: Whether outbound network traffic is restricted for + this server. Defaults to false. + type: boolean + primaryUserAssignedIdentityId: + description: Specifies the primary user managed identity id. Required + if type is UserAssigned and should be combined with identity_ids. + type: string + publicNetworkAccessEnabled: + description: Whether public network access is allowed for this + server. Defaults to true. + type: boolean + resourceGroupName: + description: The name of the resource group in which to create + the Microsoft SQL Server. Changing this forces a new resource + to be created. + type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + transparentDataEncryptionKeyVaultKeyId: + description: The fully versioned Key Vault Key URL (e.g. 'https://.vault.azure.net/keys//) + to be used as the Customer Managed Key(CMK/BYOK) for the Transparent + Data Encryption(TDE) layer. + type: string + transparentDataEncryptionKeyVaultKeyIdRef: + description: Reference to a Key in keyvault to populate transparentDataEncryptionKeyVaultKeyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + transparentDataEncryptionKeyVaultKeyIdSelector: + description: Selector for a Key in keyvault to populate transparentDataEncryptionKeyVaultKeyId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + version: + description: 'The version for the new server. Valid values are: + 2.0 (for v11 server) and 12.0 (for v12 server). Changing this + forces a new resource to be created.' + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + administratorLogin: + description: The administrator login name for the new server. + Required unless azuread_authentication_only in the azuread_administrator + block is true. When omitted, Azure will generate a default username + which cannot be subsequently changed. Changing this forces a + new resource to be created. + type: string + azureadAdministrator: + description: An azuread_administrator block as defined below. + items: + properties: + azureadAuthenticationOnly: + description: Specifies whether only AD Users and administrators + (e.g. azuread_administrator.0.login_username) can be used + to login, or also local database users (e.g. administrator_login). + When true, the administrator_login and administrator_login_password + properties can be omitted. + type: boolean + loginUsername: + description: The login username of the Azure AD Administrator + of this SQL Server. + type: string + objectId: + description: The object id of the Azure AD Administrator + of this SQL Server. + type: string + tenantId: + description: The tenant id of the Azure AD Administrator + of this SQL Server. + type: string + type: object + type: array + connectionPolicy: + description: The connection policy the server will use. Possible + values are Default, Proxy, and Redirect. Defaults to Default. + type: string + identity: + description: An identity block as defined below. + items: + properties: + identityIds: + description: Specifies a list of User Assigned Managed Identity + IDs to be assigned to this SQL Server. + items: + type: string + type: array + type: + description: Specifies the type of Managed Service Identity + that should be configured on this SQL Server. Possible + values are SystemAssigned, UserAssigned. + type: string + type: object + type: array + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + minimumTlsVersion: + description: 'The Minimum TLS Version for all SQL Database and + SQL Data Warehouse databases associated with the server. Valid + values are: 1.0, 1.1 , 1.2 and Disabled. Defaults to 1.2.' + type: string + outboundNetworkRestrictionEnabled: + description: Whether outbound network traffic is restricted for + this server. Defaults to false. + type: boolean + primaryUserAssignedIdentityId: + description: Specifies the primary user managed identity id. Required + if type is UserAssigned and should be combined with identity_ids. + type: string + publicNetworkAccessEnabled: + description: Whether public network access is allowed for this + server. Defaults to true. + type: boolean + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + version: + description: 'The version for the new server. Valid values are: + 2.0 (for v11 server) and 12.0 (for v12 server). Changing this + forces a new resource to be created.' + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + - message: spec.forProvider.version is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.version) + || (has(self.initProvider) && has(self.initProvider.version))' + status: + description: MSSQLServerStatus defines the observed state of MSSQLServer. + properties: + atProvider: + properties: + administratorLogin: + description: The administrator login name for the new server. + Required unless azuread_authentication_only in the azuread_administrator + block is true. When omitted, Azure will generate a default username + which cannot be subsequently changed. Changing this forces a + new resource to be created. + type: string + azureadAdministrator: + description: An azuread_administrator block as defined below. + items: + properties: + azureadAuthenticationOnly: + description: Specifies whether only AD Users and administrators + (e.g. azuread_administrator.0.login_username) can be used + to login, or also local database users (e.g. administrator_login). + When true, the administrator_login and administrator_login_password + properties can be omitted. + type: boolean + loginUsername: + description: The login username of the Azure AD Administrator + of this SQL Server. + type: string + objectId: + description: The object id of the Azure AD Administrator + of this SQL Server. + type: string + tenantId: + description: The tenant id of the Azure AD Administrator + of this SQL Server. + type: string + type: object + type: array + connectionPolicy: + description: The connection policy the server will use. Possible + values are Default, Proxy, and Redirect. Defaults to Default. + type: string + fullyQualifiedDomainName: + description: The fully qualified domain name of the Azure SQL + Server (e.g. myServerName.database.windows.net) + type: string + id: + description: the Microsoft SQL Server ID. + type: string + identity: + description: An identity block as defined below. + items: + properties: + identityIds: + description: Specifies a list of User Assigned Managed Identity + IDs to be assigned to this SQL Server. + items: + type: string + type: array + principalId: + description: The Principal ID for the Service Principal + associated with the Identity of this SQL Server. + type: string + tenantId: + description: The Tenant ID for the Service Principal associated + with the Identity of this SQL Server. + type: string + type: + description: Specifies the type of Managed Service Identity + that should be configured on this SQL Server. Possible + values are SystemAssigned, UserAssigned. + type: string + type: object + type: array + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + minimumTlsVersion: + description: 'The Minimum TLS Version for all SQL Database and + SQL Data Warehouse databases associated with the server. Valid + values are: 1.0, 1.1 , 1.2 and Disabled. Defaults to 1.2.' + type: string + outboundNetworkRestrictionEnabled: + description: Whether outbound network traffic is restricted for + this server. Defaults to false. + type: boolean + primaryUserAssignedIdentityId: + description: Specifies the primary user managed identity id. Required + if type is UserAssigned and should be combined with identity_ids. + type: string + publicNetworkAccessEnabled: + description: Whether public network access is allowed for this + server. Defaults to true. + type: boolean + resourceGroupName: + description: The name of the resource group in which to create + the Microsoft SQL Server. Changing this forces a new resource + to be created. + type: string + restorableDroppedDatabaseIds: + description: A list of dropped restorable database IDs on the + server. + items: + type: string + type: array + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + transparentDataEncryptionKeyVaultKeyId: + description: The fully versioned Key Vault Key URL (e.g. 'https://.vault.azure.net/keys//) + to be used as the Customer Managed Key(CMK/BYOK) for the Transparent + Data Encryption(TDE) layer. + type: string + version: + description: 'The version for the new server. Valid values are: + 2.0 (for v11 server) and 12.0 (for v12 server). Changing this + forces a new resource to be created.' + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlserversecurityalertpolicies.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlserversecurityalertpolicies.yaml new file mode 100644 index 000000000..2724fcbe1 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlserversecurityalertpolicies.yaml @@ -0,0 +1,647 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlserversecurityalertpolicies.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLServerSecurityAlertPolicy + listKind: MSSQLServerSecurityAlertPolicyList + plural: mssqlserversecurityalertpolicies + singular: mssqlserversecurityalertpolicy + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLServerSecurityAlertPolicy is the Schema for the MSSQLServerSecurityAlertPolicys + API. Manages a Security Alert Policy for a MS SQL Server. + 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: MSSQLServerSecurityAlertPolicySpec defines the desired state + of MSSQLServerSecurityAlertPolicy + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + disabledAlerts: + description: 'Specifies an array of alerts that are disabled. + Allowed values are: Sql_Injection, Sql_Injection_Vulnerability, + Access_Anomaly, Data_Exfiltration, Unsafe_Action.' + items: + type: string + type: array + emailAccountAdmins: + description: Boolean flag which specifies if the alert is sent + to the account administrators or not. Defaults to false. + type: boolean + emailAddresses: + description: Specifies an array of email addresses to which the + alert is sent. + items: + type: string + type: array + resourceGroupName: + description: The name of the resource group that contains the + MS SQL Server. Changing this forces a new resource to be created. + type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + retentionDays: + description: Specifies the number of days to keep in the Threat + Detection audit logs. Defaults to 0. + type: number + serverName: + description: Specifies the name of the MS SQL Server. Changing + this forces a new resource to be created. + type: string + serverNameRef: + description: Reference to a MSSQLServer to populate serverName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverNameSelector: + description: Selector for a MSSQLServer to populate serverName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + state: + description: Specifies the state of the policy, whether it is + enabled or disabled or a policy has not been applied yet on + the specific database server. Possible values are Disabled, + Enabled and New. + type: string + storageAccountAccessKeySecretRef: + description: Specifies the identifier key of the Threat Detection + audit storage account. This is mandatory when you use storage_endpoint + to specify a storage account blob endpoint. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + storageEndpoint: + description: Specifies the blob storage endpoint (e.g. https://example.blob.core.windows.net). + This blob storage will hold all Threat Detection audit logs. + type: string + storageEndpointRef: + description: Reference to a Account in storage to populate storageEndpoint. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + storageEndpointSelector: + description: Selector for a Account in storage to populate storageEndpoint. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + disabledAlerts: + description: 'Specifies an array of alerts that are disabled. + Allowed values are: Sql_Injection, Sql_Injection_Vulnerability, + Access_Anomaly, Data_Exfiltration, Unsafe_Action.' + items: + type: string + type: array + emailAccountAdmins: + description: Boolean flag which specifies if the alert is sent + to the account administrators or not. Defaults to false. + type: boolean + emailAddresses: + description: Specifies an array of email addresses to which the + alert is sent. + items: + type: string + type: array + retentionDays: + description: Specifies the number of days to keep in the Threat + Detection audit logs. Defaults to 0. + type: number + state: + description: Specifies the state of the policy, whether it is + enabled or disabled or a policy has not been applied yet on + the specific database server. Possible values are Disabled, + Enabled and New. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.state is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.state) + || (has(self.initProvider) && has(self.initProvider.state))' + status: + description: MSSQLServerSecurityAlertPolicyStatus defines the observed + state of MSSQLServerSecurityAlertPolicy. + properties: + atProvider: + properties: + disabledAlerts: + description: 'Specifies an array of alerts that are disabled. + Allowed values are: Sql_Injection, Sql_Injection_Vulnerability, + Access_Anomaly, Data_Exfiltration, Unsafe_Action.' + items: + type: string + type: array + emailAccountAdmins: + description: Boolean flag which specifies if the alert is sent + to the account administrators or not. Defaults to false. + type: boolean + emailAddresses: + description: Specifies an array of email addresses to which the + alert is sent. + items: + type: string + type: array + id: + description: The ID of the MS SQL Server Security Alert Policy. + type: string + resourceGroupName: + description: The name of the resource group that contains the + MS SQL Server. Changing this forces a new resource to be created. + type: string + retentionDays: + description: Specifies the number of days to keep in the Threat + Detection audit logs. Defaults to 0. + type: number + serverName: + description: Specifies the name of the MS SQL Server. Changing + this forces a new resource to be created. + type: string + state: + description: Specifies the state of the policy, whether it is + enabled or disabled or a policy has not been applied yet on + the specific database server. Possible values are Disabled, + Enabled and New. + type: string + storageEndpoint: + description: Specifies the blob storage endpoint (e.g. https://example.blob.core.windows.net). + This blob storage will hold all Threat Detection audit logs. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlservertransparentdataencryptions.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlservertransparentdataencryptions.yaml new file mode 100644 index 000000000..efbb223ff --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlservertransparentdataencryptions.yaml @@ -0,0 +1,482 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlservertransparentdataencryptions.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLServerTransparentDataEncryption + listKind: MSSQLServerTransparentDataEncryptionList + plural: mssqlservertransparentdataencryptions + singular: mssqlservertransparentdataencryption + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLServerTransparentDataEncryption is the Schema for the MSSQLServerTransparentDataEncryptions + API. Manages the transparent data encryption configuration for a MSSQL Server + 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: MSSQLServerTransparentDataEncryptionSpec defines the desired + state of MSSQLServerTransparentDataEncryption + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + autoRotationEnabled: + description: When enabled, the server will continuously check + the key vault for any new versions of the key being used as + the TDE protector. If a new version of the key is detected, + the TDE protector on the server will be automatically rotated + to the latest key version within 60 minutes. + type: boolean + keyVaultKeyId: + description: To use customer managed keys from Azure Key Vault, + provide the AKV Key ID. To use service managed keys, omit this + field. + type: string + keyVaultKeyIdRef: + description: Reference to a Key in keyvault to populate keyVaultKeyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + keyVaultKeyIdSelector: + description: Selector for a Key in keyvault to populate keyVaultKeyId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + serverId: + description: Specifies the name of the MS SQL Server. Changing + this forces a new resource to be created. + type: string + serverIdRef: + description: Reference to a MSSQLServer to populate serverId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverIdSelector: + description: Selector for a MSSQLServer to populate serverId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + autoRotationEnabled: + description: When enabled, the server will continuously check + the key vault for any new versions of the key being used as + the TDE protector. If a new version of the key is detected, + the TDE protector on the server will be automatically rotated + to the latest key version within 60 minutes. + type: boolean + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: MSSQLServerTransparentDataEncryptionStatus defines the observed + state of MSSQLServerTransparentDataEncryption. + properties: + atProvider: + properties: + autoRotationEnabled: + description: When enabled, the server will continuously check + the key vault for any new versions of the key being used as + the TDE protector. If a new version of the key is detected, + the TDE protector on the server will be automatically rotated + to the latest key version within 60 minutes. + type: boolean + id: + description: The ID of the MSSQL encryption protector + type: string + keyVaultKeyId: + description: To use customer managed keys from Azure Key Vault, + provide the AKV Key ID. To use service managed keys, omit this + field. + type: string + serverId: + description: Specifies the name of the MS SQL Server. Changing + this forces a new resource to be created. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlservervulnerabilityassessments.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlservervulnerabilityassessments.yaml new file mode 100644 index 000000000..e9d66bfd4 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlservervulnerabilityassessments.yaml @@ -0,0 +1,502 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlservervulnerabilityassessments.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLServerVulnerabilityAssessment + listKind: MSSQLServerVulnerabilityAssessmentList + plural: mssqlservervulnerabilityassessments + singular: mssqlservervulnerabilityassessment + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLServerVulnerabilityAssessment is the Schema for the MSSQLServerVulnerabilityAssessments + API. Manages the Vulnerability Assessment for a MS SQL Server. + 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: MSSQLServerVulnerabilityAssessmentSpec defines the desired + state of MSSQLServerVulnerabilityAssessment + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + recurringScans: + description: The recurring scans settings. The recurring_scans + block supports fields documented below. + items: + properties: + emailSubscriptionAdmins: + description: Boolean flag which specifies if the schedule + scan notification will be sent to the subscription administrators. + Defaults to false. + type: boolean + emails: + description: Specifies an array of email addresses to which + the scan notification is sent. + items: + type: string + type: array + enabled: + description: Boolean flag which specifies if recurring scans + is enabled or disabled. Defaults to false. + type: boolean + type: object + type: array + serverSecurityAlertPolicyId: + description: The id of the security alert policy of the MS SQL + Server. Changing this forces a new resource to be created. + type: string + serverSecurityAlertPolicyIdRef: + description: Reference to a MSSQLServerSecurityAlertPolicy in + sql to populate serverSecurityAlertPolicyId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverSecurityAlertPolicyIdSelector: + description: Selector for a MSSQLServerSecurityAlertPolicy in + sql to populate serverSecurityAlertPolicyId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + storageAccountAccessKeySecretRef: + description: Specifies the identifier key of the storage account + for vulnerability assessment scan results. If storage_container_sas_key + isn't specified, storage_account_access_key is required. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + storageContainerPath: + description: A blob storage container path to hold the scan results + (e.g. https://example.blob.core.windows.net/VaScans/). + type: string + storageContainerSasKeySecretRef: + description: A shared access signature (SAS Key) that has write + access to the blob container specified in storage_container_path + parameter. If storage_account_access_key isn't specified, storage_container_sas_key + is required. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + recurringScans: + description: The recurring scans settings. The recurring_scans + block supports fields documented below. + items: + properties: + emailSubscriptionAdmins: + description: Boolean flag which specifies if the schedule + scan notification will be sent to the subscription administrators. + Defaults to false. + type: boolean + emails: + description: Specifies an array of email addresses to which + the scan notification is sent. + items: + type: string + type: array + enabled: + description: Boolean flag which specifies if recurring scans + is enabled or disabled. Defaults to false. + type: boolean + type: object + type: array + storageContainerPath: + description: A blob storage container path to hold the scan results + (e.g. https://example.blob.core.windows.net/VaScans/). + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.storageContainerPath is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.storageContainerPath) + || (has(self.initProvider) && has(self.initProvider.storageContainerPath))' + status: + description: MSSQLServerVulnerabilityAssessmentStatus defines the observed + state of MSSQLServerVulnerabilityAssessment. + properties: + atProvider: + properties: + id: + description: The ID of the MS SQL Server Vulnerability Assessment. + type: string + recurringScans: + description: The recurring scans settings. The recurring_scans + block supports fields documented below. + items: + properties: + emailSubscriptionAdmins: + description: Boolean flag which specifies if the schedule + scan notification will be sent to the subscription administrators. + Defaults to false. + type: boolean + emails: + description: Specifies an array of email addresses to which + the scan notification is sent. + items: + type: string + type: array + enabled: + description: Boolean flag which specifies if recurring scans + is enabled or disabled. Defaults to false. + type: boolean + type: object + type: array + serverSecurityAlertPolicyId: + description: The id of the security alert policy of the MS SQL + Server. Changing this forces a new resource to be created. + type: string + storageContainerPath: + description: A blob storage container path to hold the scan results + (e.g. https://example.blob.core.windows.net/VaScans/). + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlvirtualnetworkrules.yaml b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlvirtualnetworkrules.yaml new file mode 100644 index 000000000..a9f47bbd2 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/sql.azure.kubedb.com_mssqlvirtualnetworkrules.yaml @@ -0,0 +1,476 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mssqlvirtualnetworkrules.sql.azure.kubedb.com +spec: + group: sql.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: MSSQLVirtualNetworkRule + listKind: MSSQLVirtualNetworkRuleList + plural: mssqlvirtualnetworkrules + singular: mssqlvirtualnetworkrule + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: MSSQLVirtualNetworkRule is the Schema for the MSSQLVirtualNetworkRules + API. Manages an Azure SQL Virtual Network Rule. + 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: MSSQLVirtualNetworkRuleSpec defines the desired state of + MSSQLVirtualNetworkRule + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + ignoreMissingVnetServiceEndpoint: + description: Create the virtual network rule before the subnet + has the virtual network service endpoint enabled. Defaults to + false. + type: boolean + serverId: + description: The resource ID of the SQL Server to which this SQL + virtual network rule will be applied. Changing this forces a + new resource to be created. + type: string + serverIdRef: + description: Reference to a MSSQLServer to populate serverId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + serverIdSelector: + description: Selector for a MSSQLServer to populate serverId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + subnetId: + description: The ID of the subnet from which the SQL server will + accept communications. + type: string + subnetIdRef: + description: Reference to a Subnet in network to populate subnetId. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + subnetIdSelector: + description: Selector for a Subnet in network to populate subnetId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + ignoreMissingVnetServiceEndpoint: + description: Create the virtual network rule before the subnet + has the virtual network service endpoint enabled. Defaults to + false. + type: boolean + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: MSSQLVirtualNetworkRuleStatus defines the observed state + of MSSQLVirtualNetworkRule. + properties: + atProvider: + properties: + id: + description: The ID of the SQL virtual network rule. + type: string + ignoreMissingVnetServiceEndpoint: + description: Create the virtual network rule before the subnet + has the virtual network service endpoint enabled. Defaults to + false. + type: boolean + serverId: + description: The resource ID of the SQL Server to which this SQL + virtual network rule will be applied. Changing this forces a + new resource to be created. + type: string + subnetId: + description: The ID of the subnet from which the SQL server will + accept communications. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/storage.azure.kubedb.com_accounts.yaml b/charts/kubedb-provider-azure/crds/storage.azure.kubedb.com_accounts.yaml new file mode 100644 index 000000000..5aa44f859 --- /dev/null +++ b/charts/kubedb-provider-azure/crds/storage.azure.kubedb.com_accounts.yaml @@ -0,0 +1,2313 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: accounts.storage.azure.kubedb.com +spec: + group: storage.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: Account + listKind: AccountList + plural: accounts + singular: account + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: Account is the Schema for the Accounts API. Manages a Azure Storage + Account. + 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: AccountSpec defines the desired state of Account + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + accessTier: + description: Defines the access tier for BlobStorage, FileStorage + and StorageV2 accounts. Valid options are Hot and Cool, defaults + to Hot. + type: string + accountKind: + description: Defines the Kind of account. Valid options are BlobStorage, + BlockBlobStorage, FileStorage, Storage and StorageV2. Defaults + to StorageV2. + type: string + accountReplicationType: + description: Defines the type of replication to use for this storage + account. Valid options are LRS, GRS, RAGRS, ZRS, GZRS and RAGZRS. + type: string + accountTier: + description: Defines the Tier to use for this storage account. + Valid options are Standard and Premium. For BlockBlobStorage + and FileStorage accounts only Premium is valid. Changing this + forces a new resource to be created. + type: string + allowNestedItemsToBePublic: + description: Allow or disallow nested items within this Account + to opt into being public. Defaults to true. + type: boolean + allowedCopyScope: + description: Restrict copy to and from Storage Accounts within + an AAD tenant or with Private Links to the same VNet. Possible + values are AAD and PrivateLink. + type: string + azureFilesAuthentication: + description: A azure_files_authentication block as defined below. + items: + properties: + activeDirectory: + description: A active_directory block as defined below. + Required when directory_type is AD. + items: + properties: + domainGuid: + description: Specifies the domain GUID. + type: string + domainName: + description: Specifies the primary domain that the + AD DNS server is authoritative for. + type: string + domainSid: + description: Specifies the security identifier (SID). + type: string + forestName: + description: Specifies the Active Directory forest. + type: string + netbiosDomainName: + description: Specifies the NetBIOS domain name. + type: string + storageSid: + description: Specifies the security identifier (SID) + for Azure Storage. + type: string + type: object + type: array + directoryType: + description: Specifies the directory service used. Possible + values are AADDS, AD and AADKERB. + type: string + type: object + type: array + blobProperties: + description: A blob_properties block as defined below. + items: + properties: + changeFeedEnabled: + description: Is the blob service properties for change feed + events enabled? Default to false. + type: boolean + changeFeedRetentionInDays: + description: The duration of change feed events retention + in days. The possible values are between 1 and 146000 + days (400 years). Setting this to null (or omit this in + the configuration file) indicates an infinite retention + of the change feed. + type: number + containerDeleteRetentionPolicy: + description: A container_delete_retention_policy block as + defined below. + items: + properties: + days: + description: Specifies the number of days that the + azurerm_storage_share should be retained, between + 1 and 365 days. Defaults to 7. + type: number + type: object + type: array + corsRule: + description: A cors_rule block as defined below. + items: + properties: + allowedHeaders: + description: A list of headers that are allowed to + be a part of the cross-origin request. + items: + type: string + type: array + allowedMethods: + description: A list of HTTP methods that are allowed + to be executed by the origin. Valid options are + DELETE, GET, HEAD, MERGE, POST, OPTIONS, PUT or + PATCH. + items: + type: string + type: array + allowedOrigins: + description: A list of origin domains that will be + allowed by CORS. + items: + type: string + type: array + exposedHeaders: + description: A list of response headers that are exposed + to CORS clients. + items: + type: string + type: array + maxAgeInSeconds: + description: The number of seconds the client should + cache a preflight response. + type: number + type: object + type: array + defaultServiceVersion: + description: The API Version which should be used by default + for requests to the Data Plane API if an incoming request + doesn't specify an API Version. + type: string + deleteRetentionPolicy: + description: A delete_retention_policy block as defined + below. + items: + properties: + days: + description: Specifies the number of days that the + azurerm_storage_share should be retained, between + 1 and 365 days. Defaults to 7. + type: number + type: object + type: array + lastAccessTimeEnabled: + description: Is the last access time based tracking enabled? + Default to false. + type: boolean + restorePolicy: + description: A restore_policy block as defined below. This + must be used together with delete_retention_policy set, + versioning_enabled and change_feed_enabled set to true. + items: + properties: + days: + description: Specifies the number of days that the + azurerm_storage_share should be retained, between + 1 and 365 days. Defaults to 7. + type: number + type: object + type: array + versioningEnabled: + description: Is versioning enabled? Default to false. + type: boolean + type: object + type: array + crossTenantReplicationEnabled: + description: Should cross Tenant replication be enabled? Defaults + to true. + type: boolean + customDomain: + description: A custom_domain block as documented below. + items: + properties: + name: + description: The Custom Domain Name to use for the Storage + Account, which will be validated by Azure. + type: string + useSubdomain: + description: Should the Custom Domain Name be validated + by using indirect CNAME validation? + type: boolean + type: object + type: array + customerManagedKey: + description: A customer_managed_key block as documented below. + items: + properties: + keyVaultKeyId: + description: The ID of the Key Vault Key, supplying a version-less + key ID will enable auto-rotation of this key. + type: string + userAssignedIdentityId: + description: The ID of a user assigned identity. + type: string + type: object + type: array + defaultToOauthAuthentication: + description: Default to Azure Active Directory authorization in + the Azure portal when accessing the Storage Account. The default + value is false + type: boolean + edgeZone: + description: Specifies the Edge Zone within the Azure Region where + this Storage Account should exist. Changing this forces a new + Storage Account to be created. + type: string + enableHttpsTrafficOnly: + description: Boolean flag which forces HTTPS if enabled, see here + for more information. Defaults to true. + type: boolean + identity: + description: An identity block as defined below. + items: + properties: + identityIds: + description: Specifies a list of User Assigned Managed Identity + IDs to be assigned to this Storage Account. + items: + type: string + type: array + type: + description: Specifies the type of Managed Service Identity + that should be configured on this Storage Account. Possible + values are SystemAssigned, UserAssigned, SystemAssigned, + UserAssigned (to enable both). + type: string + type: object + type: array + immutabilityPolicy: + description: An immutability_policy block as defined below. Changing + this forces a new resource to be created. + items: + properties: + allowProtectedAppendWrites: + description: When enabled, new blocks can be written to + an append blob while maintaining immutability protection + and compliance. Only new blocks can be added and any existing + blocks cannot be modified or deleted. + type: boolean + periodSinceCreationInDays: + description: The immutability period for the blobs in the + container since the policy creation, in days. + type: number + state: + description: Defines the mode of the policy. Disabled state + disables the policy, Unlocked state allows increase and + decrease of immutability retention time and also allows + toggling allowProtectedAppendWrites property, Locked state + only allows the increase of the immutability retention + time. A policy can only be created in a Disabled or Unlocked + state and can be toggled between the two states. Only + a policy in an Unlocked state can transition to a Locked + state which cannot be reverted. + type: string + type: object + type: array + infrastructureEncryptionEnabled: + description: Is infrastructure encryption enabled? Changing this + forces a new resource to be created. Defaults to false. + type: boolean + isHnsEnabled: + description: Is Hierarchical Namespace enabled? This can be used + with Azure Data Lake Storage Gen 2 (see here for more information). + Changing this forces a new resource to be created. + type: boolean + largeFileShareEnabled: + description: Is Large File Share Enabled? + type: boolean + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + minTlsVersion: + description: The minimum supported TLS version for the storage + account. Possible values are TLS1_0, TLS1_1, and TLS1_2. Defaults + to TLS1_2 for new storage accounts. + type: string + networkRules: + description: A network_rules block as documented below. + items: + properties: + bypass: + description: Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. + Valid options are any combination of Logging, Metrics, + AzureServices, or None. + items: + type: string + type: array + defaultAction: + description: Specifies the default action of allow or deny + when no other rules match. Valid options are Deny or Allow. + type: string + ipRules: + description: List of public IP or IP ranges in CIDR Format. + Only IPv4 addresses are allowed. /31 CIDRs, /32 CIDRs, + and Private IP address ranges (as defined in RFC 1918), are + not allowed. + items: + type: string + type: array + privateLinkAccess: + description: One or More private_link_access block as defined + below. + items: + properties: + endpointResourceId: + description: The resource id of the resource access + rule to be granted access. + type: string + endpointTenantId: + description: The tenant id of the resource of the + resource access rule to be granted access. Defaults + to the current tenant id. + type: string + type: object + type: array + virtualNetworkSubnetIds: + description: A list of resource ids for subnets. + items: + type: string + type: array + type: object + type: array + nfsv3Enabled: + description: Is NFSv3 protocol enabled? Changing this forces a + new resource to be created. Defaults to false. + type: boolean + publicNetworkAccessEnabled: + description: Whether the public network access is enabled? Defaults + to true. + type: boolean + queueEncryptionKeyType: + description: The encryption type of the queue service. Possible + values are Service and Account. Changing this forces a new resource + to be created. Default value is Service. + type: string + queueProperties: + description: A queue_properties block as defined below. + items: + properties: + corsRule: + description: A cors_rule block as defined above. + items: + properties: + allowedHeaders: + description: A list of headers that are allowed to + be a part of the cross-origin request. + items: + type: string + type: array + allowedMethods: + description: A list of HTTP methods that are allowed + to be executed by the origin. Valid options are + DELETE, GET, HEAD, MERGE, POST, OPTIONS, PUT or + PATCH. + items: + type: string + type: array + allowedOrigins: + description: A list of origin domains that will be + allowed by CORS. + items: + type: string + type: array + exposedHeaders: + description: A list of response headers that are exposed + to CORS clients. + items: + type: string + type: array + maxAgeInSeconds: + description: The number of seconds the client should + cache a preflight response. + type: number + type: object + type: array + hourMetrics: + description: A hour_metrics block as defined below. + items: + properties: + enabled: + description: Indicates whether minute metrics are + enabled for the Queue service. + type: boolean + includeApis: + description: Indicates whether metrics should generate + summary statistics for called API operations. + type: boolean + retentionPolicyDays: + description: Specifies the number of days that logs + will be retained. + type: number + version: + description: The version of storage analytics to configure. + type: string + type: object + type: array + logging: + description: A logging block as defined below. + items: + properties: + delete: + description: (Defaults to 60 minutes) Used when deleting + the Storage Account. + type: boolean + read: + description: (Defaults to 5 minutes) Used when retrieving + the Storage Account. + type: boolean + retentionPolicyDays: + description: Specifies the number of days that logs + will be retained. + type: number + version: + description: The version of storage analytics to configure. + type: string + write: + description: Indicates whether all write requests + should be logged. + type: boolean + type: object + type: array + minuteMetrics: + description: A minute_metrics block as defined below. + items: + properties: + enabled: + description: Indicates whether minute metrics are + enabled for the Queue service. + type: boolean + includeApis: + description: Indicates whether metrics should generate + summary statistics for called API operations. + type: boolean + retentionPolicyDays: + description: Specifies the number of days that logs + will be retained. + type: number + version: + description: The version of storage analytics to configure. + type: string + type: object + type: array + type: object + type: array + resourceGroupName: + description: The name of the resource group in which to create + the storage account. Changing this forces a new resource to + be created. + type: string + resourceGroupNameRef: + description: Reference to a ResourceGroup in azure to populate + resourceGroupName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + resourceGroupNameSelector: + description: Selector for a ResourceGroup in azure to populate + resourceGroupName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + routing: + description: A routing block as defined below. + items: + properties: + choice: + description: Specifies the kind of network routing opted + by the user. Possible values are InternetRouting and MicrosoftRouting. + Defaults to MicrosoftRouting. + type: string + publishInternetEndpoints: + description: Should internet routing storage endpoints be + published? Defaults to false. + type: boolean + publishMicrosoftEndpoints: + description: Should Microsoft routing storage endpoints + be published? Defaults to false. + type: boolean + type: object + type: array + sasPolicy: + description: A sas_policy block as defined below. + items: + properties: + expirationAction: + description: The SAS expiration action. The only possible + value is Log at this moment. Defaults to Log. + type: string + expirationPeriod: + description: The SAS expiration period in format of DD.HH:MM:SS. + type: string + type: object + type: array + sftpEnabled: + description: Boolean, enable SFTP for the storage account + type: boolean + shareProperties: + description: A share_properties block as defined below. + items: + properties: + corsRule: + description: A cors_rule block as defined below. + items: + properties: + allowedHeaders: + description: A list of headers that are allowed to + be a part of the cross-origin request. + items: + type: string + type: array + allowedMethods: + description: A list of HTTP methods that are allowed + to be executed by the origin. Valid options are + DELETE, GET, HEAD, MERGE, POST, OPTIONS, PUT or + PATCH. + items: + type: string + type: array + allowedOrigins: + description: A list of origin domains that will be + allowed by CORS. + items: + type: string + type: array + exposedHeaders: + description: A list of response headers that are exposed + to CORS clients. + items: + type: string + type: array + maxAgeInSeconds: + description: The number of seconds the client should + cache a preflight response. + type: number + type: object + type: array + retentionPolicy: + description: A retention_policy block as defined below. + items: + properties: + days: + description: Specifies the number of days that the + azurerm_storage_share should be retained, between + 1 and 365 days. Defaults to 7. + type: number + type: object + type: array + smb: + description: A smb block as defined below. + items: + properties: + authenticationTypes: + description: A set of SMB authentication methods. + Possible values are NTLMv2, and Kerberos. + items: + type: string + type: array + channelEncryptionType: + description: A set of SMB channel encryption. Possible + values are AES-128-CCM, AES-128-GCM, and AES-256-GCM. + items: + type: string + type: array + kerberosTicketEncryptionType: + description: A set of Kerberos ticket encryption. + Possible values are RC4-HMAC, and AES-256. + items: + type: string + type: array + multichannelEnabled: + description: Indicates whether multichannel is enabled. + Defaults to false. This is only supported on Premium + storage accounts. + type: boolean + versions: + description: A set of SMB protocol versions. Possible + values are SMB2.1, SMB3.0, and SMB3.1.1. + items: + type: string + type: array + type: object + type: array + type: object + type: array + sharedAccessKeyEnabled: + description: Indicates whether the storage account permits requests + to be authorized with the account access key via Shared Key. + If false, then all requests, including shared access signatures, + must be authorized with Azure Active Directory (Azure AD). The + default value is true. + type: boolean + staticWebsite: + description: A static_website block as defined below. + items: + properties: + error404Document: + description: The absolute path to a custom webpage that + should be used when a request is made which does not correspond + to an existing file. + type: string + indexDocument: + description: The webpage that Azure Storage serves for requests + to the root of a website or any subfolder. For example, + index.html. The value is case-sensitive. + type: string + type: object + type: array + tableEncryptionKeyType: + description: The encryption type of the table service. Possible + values are Service and Account. Changing this forces a new resource + to be created. Default value is Service. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + accessTier: + description: Defines the access tier for BlobStorage, FileStorage + and StorageV2 accounts. Valid options are Hot and Cool, defaults + to Hot. + type: string + accountKind: + description: Defines the Kind of account. Valid options are BlobStorage, + BlockBlobStorage, FileStorage, Storage and StorageV2. Defaults + to StorageV2. + type: string + accountReplicationType: + description: Defines the type of replication to use for this storage + account. Valid options are LRS, GRS, RAGRS, ZRS, GZRS and RAGZRS. + type: string + accountTier: + description: Defines the Tier to use for this storage account. + Valid options are Standard and Premium. For BlockBlobStorage + and FileStorage accounts only Premium is valid. Changing this + forces a new resource to be created. + type: string + allowNestedItemsToBePublic: + description: Allow or disallow nested items within this Account + to opt into being public. Defaults to true. + type: boolean + allowedCopyScope: + description: Restrict copy to and from Storage Accounts within + an AAD tenant or with Private Links to the same VNet. Possible + values are AAD and PrivateLink. + type: string + azureFilesAuthentication: + description: A azure_files_authentication block as defined below. + items: + properties: + activeDirectory: + description: A active_directory block as defined below. + Required when directory_type is AD. + items: + properties: + domainGuid: + description: Specifies the domain GUID. + type: string + domainName: + description: Specifies the primary domain that the + AD DNS server is authoritative for. + type: string + domainSid: + description: Specifies the security identifier (SID). + type: string + forestName: + description: Specifies the Active Directory forest. + type: string + netbiosDomainName: + description: Specifies the NetBIOS domain name. + type: string + storageSid: + description: Specifies the security identifier (SID) + for Azure Storage. + type: string + type: object + type: array + directoryType: + description: Specifies the directory service used. Possible + values are AADDS, AD and AADKERB. + type: string + type: object + type: array + blobProperties: + description: A blob_properties block as defined below. + items: + properties: + changeFeedEnabled: + description: Is the blob service properties for change feed + events enabled? Default to false. + type: boolean + changeFeedRetentionInDays: + description: The duration of change feed events retention + in days. The possible values are between 1 and 146000 + days (400 years). Setting this to null (or omit this in + the configuration file) indicates an infinite retention + of the change feed. + type: number + containerDeleteRetentionPolicy: + description: A container_delete_retention_policy block as + defined below. + items: + properties: + days: + description: Specifies the number of days that the + azurerm_storage_share should be retained, between + 1 and 365 days. Defaults to 7. + type: number + type: object + type: array + corsRule: + description: A cors_rule block as defined below. + items: + properties: + allowedHeaders: + description: A list of headers that are allowed to + be a part of the cross-origin request. + items: + type: string + type: array + allowedMethods: + description: A list of HTTP methods that are allowed + to be executed by the origin. Valid options are + DELETE, GET, HEAD, MERGE, POST, OPTIONS, PUT or + PATCH. + items: + type: string + type: array + allowedOrigins: + description: A list of origin domains that will be + allowed by CORS. + items: + type: string + type: array + exposedHeaders: + description: A list of response headers that are exposed + to CORS clients. + items: + type: string + type: array + maxAgeInSeconds: + description: The number of seconds the client should + cache a preflight response. + type: number + type: object + type: array + defaultServiceVersion: + description: The API Version which should be used by default + for requests to the Data Plane API if an incoming request + doesn't specify an API Version. + type: string + deleteRetentionPolicy: + description: A delete_retention_policy block as defined + below. + items: + properties: + days: + description: Specifies the number of days that the + azurerm_storage_share should be retained, between + 1 and 365 days. Defaults to 7. + type: number + type: object + type: array + lastAccessTimeEnabled: + description: Is the last access time based tracking enabled? + Default to false. + type: boolean + restorePolicy: + description: A restore_policy block as defined below. This + must be used together with delete_retention_policy set, + versioning_enabled and change_feed_enabled set to true. + items: + properties: + days: + description: Specifies the number of days that the + azurerm_storage_share should be retained, between + 1 and 365 days. Defaults to 7. + type: number + type: object + type: array + versioningEnabled: + description: Is versioning enabled? Default to false. + type: boolean + type: object + type: array + crossTenantReplicationEnabled: + description: Should cross Tenant replication be enabled? Defaults + to true. + type: boolean + customDomain: + description: A custom_domain block as documented below. + items: + properties: + name: + description: The Custom Domain Name to use for the Storage + Account, which will be validated by Azure. + type: string + useSubdomain: + description: Should the Custom Domain Name be validated + by using indirect CNAME validation? + type: boolean + type: object + type: array + customerManagedKey: + description: A customer_managed_key block as documented below. + items: + properties: + keyVaultKeyId: + description: The ID of the Key Vault Key, supplying a version-less + key ID will enable auto-rotation of this key. + type: string + userAssignedIdentityId: + description: The ID of a user assigned identity. + type: string + type: object + type: array + defaultToOauthAuthentication: + description: Default to Azure Active Directory authorization in + the Azure portal when accessing the Storage Account. The default + value is false + type: boolean + edgeZone: + description: Specifies the Edge Zone within the Azure Region where + this Storage Account should exist. Changing this forces a new + Storage Account to be created. + type: string + enableHttpsTrafficOnly: + description: Boolean flag which forces HTTPS if enabled, see here + for more information. Defaults to true. + type: boolean + identity: + description: An identity block as defined below. + items: + properties: + identityIds: + description: Specifies a list of User Assigned Managed Identity + IDs to be assigned to this Storage Account. + items: + type: string + type: array + type: + description: Specifies the type of Managed Service Identity + that should be configured on this Storage Account. Possible + values are SystemAssigned, UserAssigned, SystemAssigned, + UserAssigned (to enable both). + type: string + type: object + type: array + immutabilityPolicy: + description: An immutability_policy block as defined below. Changing + this forces a new resource to be created. + items: + properties: + allowProtectedAppendWrites: + description: When enabled, new blocks can be written to + an append blob while maintaining immutability protection + and compliance. Only new blocks can be added and any existing + blocks cannot be modified or deleted. + type: boolean + periodSinceCreationInDays: + description: The immutability period for the blobs in the + container since the policy creation, in days. + type: number + state: + description: Defines the mode of the policy. Disabled state + disables the policy, Unlocked state allows increase and + decrease of immutability retention time and also allows + toggling allowProtectedAppendWrites property, Locked state + only allows the increase of the immutability retention + time. A policy can only be created in a Disabled or Unlocked + state and can be toggled between the two states. Only + a policy in an Unlocked state can transition to a Locked + state which cannot be reverted. + type: string + type: object + type: array + infrastructureEncryptionEnabled: + description: Is infrastructure encryption enabled? Changing this + forces a new resource to be created. Defaults to false. + type: boolean + isHnsEnabled: + description: Is Hierarchical Namespace enabled? This can be used + with Azure Data Lake Storage Gen 2 (see here for more information). + Changing this forces a new resource to be created. + type: boolean + largeFileShareEnabled: + description: Is Large File Share Enabled? + type: boolean + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + minTlsVersion: + description: The minimum supported TLS version for the storage + account. Possible values are TLS1_0, TLS1_1, and TLS1_2. Defaults + to TLS1_2 for new storage accounts. + type: string + networkRules: + description: A network_rules block as documented below. + items: + properties: + bypass: + description: Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. + Valid options are any combination of Logging, Metrics, + AzureServices, or None. + items: + type: string + type: array + defaultAction: + description: Specifies the default action of allow or deny + when no other rules match. Valid options are Deny or Allow. + type: string + ipRules: + description: List of public IP or IP ranges in CIDR Format. + Only IPv4 addresses are allowed. /31 CIDRs, /32 CIDRs, + and Private IP address ranges (as defined in RFC 1918), are + not allowed. + items: + type: string + type: array + privateLinkAccess: + description: One or More private_link_access block as defined + below. + items: + properties: + endpointResourceId: + description: The resource id of the resource access + rule to be granted access. + type: string + endpointTenantId: + description: The tenant id of the resource of the + resource access rule to be granted access. Defaults + to the current tenant id. + type: string + type: object + type: array + virtualNetworkSubnetIds: + description: A list of resource ids for subnets. + items: + type: string + type: array + type: object + type: array + nfsv3Enabled: + description: Is NFSv3 protocol enabled? Changing this forces a + new resource to be created. Defaults to false. + type: boolean + publicNetworkAccessEnabled: + description: Whether the public network access is enabled? Defaults + to true. + type: boolean + queueEncryptionKeyType: + description: The encryption type of the queue service. Possible + values are Service and Account. Changing this forces a new resource + to be created. Default value is Service. + type: string + queueProperties: + description: A queue_properties block as defined below. + items: + properties: + corsRule: + description: A cors_rule block as defined above. + items: + properties: + allowedHeaders: + description: A list of headers that are allowed to + be a part of the cross-origin request. + items: + type: string + type: array + allowedMethods: + description: A list of HTTP methods that are allowed + to be executed by the origin. Valid options are + DELETE, GET, HEAD, MERGE, POST, OPTIONS, PUT or + PATCH. + items: + type: string + type: array + allowedOrigins: + description: A list of origin domains that will be + allowed by CORS. + items: + type: string + type: array + exposedHeaders: + description: A list of response headers that are exposed + to CORS clients. + items: + type: string + type: array + maxAgeInSeconds: + description: The number of seconds the client should + cache a preflight response. + type: number + type: object + type: array + hourMetrics: + description: A hour_metrics block as defined below. + items: + properties: + enabled: + description: Indicates whether minute metrics are + enabled for the Queue service. + type: boolean + includeApis: + description: Indicates whether metrics should generate + summary statistics for called API operations. + type: boolean + retentionPolicyDays: + description: Specifies the number of days that logs + will be retained. + type: number + version: + description: The version of storage analytics to configure. + type: string + type: object + type: array + logging: + description: A logging block as defined below. + items: + properties: + delete: + description: (Defaults to 60 minutes) Used when deleting + the Storage Account. + type: boolean + read: + description: (Defaults to 5 minutes) Used when retrieving + the Storage Account. + type: boolean + retentionPolicyDays: + description: Specifies the number of days that logs + will be retained. + type: number + version: + description: The version of storage analytics to configure. + type: string + write: + description: Indicates whether all write requests + should be logged. + type: boolean + type: object + type: array + minuteMetrics: + description: A minute_metrics block as defined below. + items: + properties: + enabled: + description: Indicates whether minute metrics are + enabled for the Queue service. + type: boolean + includeApis: + description: Indicates whether metrics should generate + summary statistics for called API operations. + type: boolean + retentionPolicyDays: + description: Specifies the number of days that logs + will be retained. + type: number + version: + description: The version of storage analytics to configure. + type: string + type: object + type: array + type: object + type: array + routing: + description: A routing block as defined below. + items: + properties: + choice: + description: Specifies the kind of network routing opted + by the user. Possible values are InternetRouting and MicrosoftRouting. + Defaults to MicrosoftRouting. + type: string + publishInternetEndpoints: + description: Should internet routing storage endpoints be + published? Defaults to false. + type: boolean + publishMicrosoftEndpoints: + description: Should Microsoft routing storage endpoints + be published? Defaults to false. + type: boolean + type: object + type: array + sasPolicy: + description: A sas_policy block as defined below. + items: + properties: + expirationAction: + description: The SAS expiration action. The only possible + value is Log at this moment. Defaults to Log. + type: string + expirationPeriod: + description: The SAS expiration period in format of DD.HH:MM:SS. + type: string + type: object + type: array + sftpEnabled: + description: Boolean, enable SFTP for the storage account + type: boolean + shareProperties: + description: A share_properties block as defined below. + items: + properties: + corsRule: + description: A cors_rule block as defined below. + items: + properties: + allowedHeaders: + description: A list of headers that are allowed to + be a part of the cross-origin request. + items: + type: string + type: array + allowedMethods: + description: A list of HTTP methods that are allowed + to be executed by the origin. Valid options are + DELETE, GET, HEAD, MERGE, POST, OPTIONS, PUT or + PATCH. + items: + type: string + type: array + allowedOrigins: + description: A list of origin domains that will be + allowed by CORS. + items: + type: string + type: array + exposedHeaders: + description: A list of response headers that are exposed + to CORS clients. + items: + type: string + type: array + maxAgeInSeconds: + description: The number of seconds the client should + cache a preflight response. + type: number + type: object + type: array + retentionPolicy: + description: A retention_policy block as defined below. + items: + properties: + days: + description: Specifies the number of days that the + azurerm_storage_share should be retained, between + 1 and 365 days. Defaults to 7. + type: number + type: object + type: array + smb: + description: A smb block as defined below. + items: + properties: + authenticationTypes: + description: A set of SMB authentication methods. + Possible values are NTLMv2, and Kerberos. + items: + type: string + type: array + channelEncryptionType: + description: A set of SMB channel encryption. Possible + values are AES-128-CCM, AES-128-GCM, and AES-256-GCM. + items: + type: string + type: array + kerberosTicketEncryptionType: + description: A set of Kerberos ticket encryption. + Possible values are RC4-HMAC, and AES-256. + items: + type: string + type: array + multichannelEnabled: + description: Indicates whether multichannel is enabled. + Defaults to false. This is only supported on Premium + storage accounts. + type: boolean + versions: + description: A set of SMB protocol versions. Possible + values are SMB2.1, SMB3.0, and SMB3.1.1. + items: + type: string + type: array + type: object + type: array + type: object + type: array + sharedAccessKeyEnabled: + description: Indicates whether the storage account permits requests + to be authorized with the account access key via Shared Key. + If false, then all requests, including shared access signatures, + must be authorized with Azure Active Directory (Azure AD). The + default value is true. + type: boolean + staticWebsite: + description: A static_website block as defined below. + items: + properties: + error404Document: + description: The absolute path to a custom webpage that + should be used when a request is made which does not correspond + to an existing file. + type: string + indexDocument: + description: The webpage that Azure Storage serves for requests + to the root of a website or any subfolder. For example, + index.html. The value is case-sensitive. + type: string + type: object + type: array + tableEncryptionKeyType: + description: The encryption type of the table service. Possible + values are Service and Account. Changing this forces a new resource + to be created. Default value is Service. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.accountReplicationType is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.accountReplicationType) + || (has(self.initProvider) && has(self.initProvider.accountReplicationType))' + - message: spec.forProvider.accountTier is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.accountTier) + || (has(self.initProvider) && has(self.initProvider.accountTier))' + - message: spec.forProvider.location is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.location) + || (has(self.initProvider) && has(self.initProvider.location))' + status: + description: AccountStatus defines the observed state of Account. + properties: + atProvider: + properties: + accessTier: + description: Defines the access tier for BlobStorage, FileStorage + and StorageV2 accounts. Valid options are Hot and Cool, defaults + to Hot. + type: string + accountKind: + description: Defines the Kind of account. Valid options are BlobStorage, + BlockBlobStorage, FileStorage, Storage and StorageV2. Defaults + to StorageV2. + type: string + accountReplicationType: + description: Defines the type of replication to use for this storage + account. Valid options are LRS, GRS, RAGRS, ZRS, GZRS and RAGZRS. + type: string + accountTier: + description: Defines the Tier to use for this storage account. + Valid options are Standard and Premium. For BlockBlobStorage + and FileStorage accounts only Premium is valid. Changing this + forces a new resource to be created. + type: string + allowNestedItemsToBePublic: + description: Allow or disallow nested items within this Account + to opt into being public. Defaults to true. + type: boolean + allowedCopyScope: + description: Restrict copy to and from Storage Accounts within + an AAD tenant or with Private Links to the same VNet. Possible + values are AAD and PrivateLink. + type: string + azureFilesAuthentication: + description: A azure_files_authentication block as defined below. + items: + properties: + activeDirectory: + description: A active_directory block as defined below. + Required when directory_type is AD. + items: + properties: + domainGuid: + description: Specifies the domain GUID. + type: string + domainName: + description: Specifies the primary domain that the + AD DNS server is authoritative for. + type: string + domainSid: + description: Specifies the security identifier (SID). + type: string + forestName: + description: Specifies the Active Directory forest. + type: string + netbiosDomainName: + description: Specifies the NetBIOS domain name. + type: string + storageSid: + description: Specifies the security identifier (SID) + for Azure Storage. + type: string + type: object + type: array + directoryType: + description: Specifies the directory service used. Possible + values are AADDS, AD and AADKERB. + type: string + type: object + type: array + blobProperties: + description: A blob_properties block as defined below. + items: + properties: + changeFeedEnabled: + description: Is the blob service properties for change feed + events enabled? Default to false. + type: boolean + changeFeedRetentionInDays: + description: The duration of change feed events retention + in days. The possible values are between 1 and 146000 + days (400 years). Setting this to null (or omit this in + the configuration file) indicates an infinite retention + of the change feed. + type: number + containerDeleteRetentionPolicy: + description: A container_delete_retention_policy block as + defined below. + items: + properties: + days: + description: Specifies the number of days that the + azurerm_storage_share should be retained, between + 1 and 365 days. Defaults to 7. + type: number + type: object + type: array + corsRule: + description: A cors_rule block as defined below. + items: + properties: + allowedHeaders: + description: A list of headers that are allowed to + be a part of the cross-origin request. + items: + type: string + type: array + allowedMethods: + description: A list of HTTP methods that are allowed + to be executed by the origin. Valid options are + DELETE, GET, HEAD, MERGE, POST, OPTIONS, PUT or + PATCH. + items: + type: string + type: array + allowedOrigins: + description: A list of origin domains that will be + allowed by CORS. + items: + type: string + type: array + exposedHeaders: + description: A list of response headers that are exposed + to CORS clients. + items: + type: string + type: array + maxAgeInSeconds: + description: The number of seconds the client should + cache a preflight response. + type: number + type: object + type: array + defaultServiceVersion: + description: The API Version which should be used by default + for requests to the Data Plane API if an incoming request + doesn't specify an API Version. + type: string + deleteRetentionPolicy: + description: A delete_retention_policy block as defined + below. + items: + properties: + days: + description: Specifies the number of days that the + azurerm_storage_share should be retained, between + 1 and 365 days. Defaults to 7. + type: number + type: object + type: array + lastAccessTimeEnabled: + description: Is the last access time based tracking enabled? + Default to false. + type: boolean + restorePolicy: + description: A restore_policy block as defined below. This + must be used together with delete_retention_policy set, + versioning_enabled and change_feed_enabled set to true. + items: + properties: + days: + description: Specifies the number of days that the + azurerm_storage_share should be retained, between + 1 and 365 days. Defaults to 7. + type: number + type: object + type: array + versioningEnabled: + description: Is versioning enabled? Default to false. + type: boolean + type: object + type: array + crossTenantReplicationEnabled: + description: Should cross Tenant replication be enabled? Defaults + to true. + type: boolean + customDomain: + description: A custom_domain block as documented below. + items: + properties: + name: + description: The Custom Domain Name to use for the Storage + Account, which will be validated by Azure. + type: string + useSubdomain: + description: Should the Custom Domain Name be validated + by using indirect CNAME validation? + type: boolean + type: object + type: array + customerManagedKey: + description: A customer_managed_key block as documented below. + items: + properties: + keyVaultKeyId: + description: The ID of the Key Vault Key, supplying a version-less + key ID will enable auto-rotation of this key. + type: string + userAssignedIdentityId: + description: The ID of a user assigned identity. + type: string + type: object + type: array + defaultToOauthAuthentication: + description: Default to Azure Active Directory authorization in + the Azure portal when accessing the Storage Account. The default + value is false + type: boolean + edgeZone: + description: Specifies the Edge Zone within the Azure Region where + this Storage Account should exist. Changing this forces a new + Storage Account to be created. + type: string + enableHttpsTrafficOnly: + description: Boolean flag which forces HTTPS if enabled, see here + for more information. Defaults to true. + type: boolean + id: + description: The ID of the Storage Account. + type: string + identity: + description: An identity block as defined below. + items: + properties: + identityIds: + description: Specifies a list of User Assigned Managed Identity + IDs to be assigned to this Storage Account. + items: + type: string + type: array + principalId: + description: The Principal ID for the Service Principal + associated with the Identity of this Storage Account. + type: string + tenantId: + description: The Tenant ID for the Service Principal associated + with the Identity of this Storage Account. + type: string + type: + description: Specifies the type of Managed Service Identity + that should be configured on this Storage Account. Possible + values are SystemAssigned, UserAssigned, SystemAssigned, + UserAssigned (to enable both). + type: string + type: object + type: array + immutabilityPolicy: + description: An immutability_policy block as defined below. Changing + this forces a new resource to be created. + items: + properties: + allowProtectedAppendWrites: + description: When enabled, new blocks can be written to + an append blob while maintaining immutability protection + and compliance. Only new blocks can be added and any existing + blocks cannot be modified or deleted. + type: boolean + periodSinceCreationInDays: + description: The immutability period for the blobs in the + container since the policy creation, in days. + type: number + state: + description: Defines the mode of the policy. Disabled state + disables the policy, Unlocked state allows increase and + decrease of immutability retention time and also allows + toggling allowProtectedAppendWrites property, Locked state + only allows the increase of the immutability retention + time. A policy can only be created in a Disabled or Unlocked + state and can be toggled between the two states. Only + a policy in an Unlocked state can transition to a Locked + state which cannot be reverted. + type: string + type: object + type: array + infrastructureEncryptionEnabled: + description: Is infrastructure encryption enabled? Changing this + forces a new resource to be created. Defaults to false. + type: boolean + isHnsEnabled: + description: Is Hierarchical Namespace enabled? This can be used + with Azure Data Lake Storage Gen 2 (see here for more information). + Changing this forces a new resource to be created. + type: boolean + largeFileShareEnabled: + description: Is Large File Share Enabled? + type: boolean + location: + description: Specifies the supported Azure location where the + resource exists. Changing this forces a new resource to be created. + type: string + minTlsVersion: + description: The minimum supported TLS version for the storage + account. Possible values are TLS1_0, TLS1_1, and TLS1_2. Defaults + to TLS1_2 for new storage accounts. + type: string + networkRules: + description: A network_rules block as documented below. + items: + properties: + bypass: + description: Specifies whether traffic is bypassed for Logging/Metrics/AzureServices. + Valid options are any combination of Logging, Metrics, + AzureServices, or None. + items: + type: string + type: array + defaultAction: + description: Specifies the default action of allow or deny + when no other rules match. Valid options are Deny or Allow. + type: string + ipRules: + description: List of public IP or IP ranges in CIDR Format. + Only IPv4 addresses are allowed. /31 CIDRs, /32 CIDRs, + and Private IP address ranges (as defined in RFC 1918), are + not allowed. + items: + type: string + type: array + privateLinkAccess: + description: One or More private_link_access block as defined + below. + items: + properties: + endpointResourceId: + description: The resource id of the resource access + rule to be granted access. + type: string + endpointTenantId: + description: The tenant id of the resource of the + resource access rule to be granted access. Defaults + to the current tenant id. + type: string + type: object + type: array + virtualNetworkSubnetIds: + description: A list of resource ids for subnets. + items: + type: string + type: array + type: object + type: array + nfsv3Enabled: + description: Is NFSv3 protocol enabled? Changing this forces a + new resource to be created. Defaults to false. + type: boolean + primaryBlobEndpoint: + description: The endpoint URL for blob storage in the primary + location. + type: string + primaryBlobHost: + description: The hostname with port if applicable for blob storage + in the primary location. + type: string + primaryDfsEndpoint: + description: The endpoint URL for DFS storage in the primary location. + type: string + primaryDfsHost: + description: The hostname with port if applicable for DFS storage + in the primary location. + type: string + primaryFileEndpoint: + description: The endpoint URL for file storage in the primary + location. + type: string + primaryFileHost: + description: The hostname with port if applicable for file storage + in the primary location. + type: string + primaryLocation: + description: The primary location of the storage account. + type: string + primaryQueueEndpoint: + description: The endpoint URL for queue storage in the primary + location. + type: string + primaryQueueHost: + description: The hostname with port if applicable for queue storage + in the primary location. + type: string + primaryTableEndpoint: + description: The endpoint URL for table storage in the primary + location. + type: string + primaryTableHost: + description: The hostname with port if applicable for table storage + in the primary location. + type: string + primaryWebEndpoint: + description: The endpoint URL for web storage in the primary location. + type: string + primaryWebHost: + description: The hostname with port if applicable for web storage + in the primary location. + type: string + publicNetworkAccessEnabled: + description: Whether the public network access is enabled? Defaults + to true. + type: boolean + queueEncryptionKeyType: + description: The encryption type of the queue service. Possible + values are Service and Account. Changing this forces a new resource + to be created. Default value is Service. + type: string + queueProperties: + description: A queue_properties block as defined below. + items: + properties: + corsRule: + description: A cors_rule block as defined above. + items: + properties: + allowedHeaders: + description: A list of headers that are allowed to + be a part of the cross-origin request. + items: + type: string + type: array + allowedMethods: + description: A list of HTTP methods that are allowed + to be executed by the origin. Valid options are + DELETE, GET, HEAD, MERGE, POST, OPTIONS, PUT or + PATCH. + items: + type: string + type: array + allowedOrigins: + description: A list of origin domains that will be + allowed by CORS. + items: + type: string + type: array + exposedHeaders: + description: A list of response headers that are exposed + to CORS clients. + items: + type: string + type: array + maxAgeInSeconds: + description: The number of seconds the client should + cache a preflight response. + type: number + type: object + type: array + hourMetrics: + description: A hour_metrics block as defined below. + items: + properties: + enabled: + description: Indicates whether minute metrics are + enabled for the Queue service. + type: boolean + includeApis: + description: Indicates whether metrics should generate + summary statistics for called API operations. + type: boolean + retentionPolicyDays: + description: Specifies the number of days that logs + will be retained. + type: number + version: + description: The version of storage analytics to configure. + type: string + type: object + type: array + logging: + description: A logging block as defined below. + items: + properties: + delete: + description: (Defaults to 60 minutes) Used when deleting + the Storage Account. + type: boolean + read: + description: (Defaults to 5 minutes) Used when retrieving + the Storage Account. + type: boolean + retentionPolicyDays: + description: Specifies the number of days that logs + will be retained. + type: number + version: + description: The version of storage analytics to configure. + type: string + write: + description: Indicates whether all write requests + should be logged. + type: boolean + type: object + type: array + minuteMetrics: + description: A minute_metrics block as defined below. + items: + properties: + enabled: + description: Indicates whether minute metrics are + enabled for the Queue service. + type: boolean + includeApis: + description: Indicates whether metrics should generate + summary statistics for called API operations. + type: boolean + retentionPolicyDays: + description: Specifies the number of days that logs + will be retained. + type: number + version: + description: The version of storage analytics to configure. + type: string + type: object + type: array + type: object + type: array + resourceGroupName: + description: The name of the resource group in which to create + the storage account. Changing this forces a new resource to + be created. + type: string + routing: + description: A routing block as defined below. + items: + properties: + choice: + description: Specifies the kind of network routing opted + by the user. Possible values are InternetRouting and MicrosoftRouting. + Defaults to MicrosoftRouting. + type: string + publishInternetEndpoints: + description: Should internet routing storage endpoints be + published? Defaults to false. + type: boolean + publishMicrosoftEndpoints: + description: Should Microsoft routing storage endpoints + be published? Defaults to false. + type: boolean + type: object + type: array + sasPolicy: + description: A sas_policy block as defined below. + items: + properties: + expirationAction: + description: The SAS expiration action. The only possible + value is Log at this moment. Defaults to Log. + type: string + expirationPeriod: + description: The SAS expiration period in format of DD.HH:MM:SS. + type: string + type: object + type: array + secondaryBlobEndpoint: + description: The endpoint URL for blob storage in the secondary + location. + type: string + secondaryBlobHost: + description: The hostname with port if applicable for blob storage + in the secondary location. + type: string + secondaryDfsEndpoint: + description: The endpoint URL for DFS storage in the secondary + location. + type: string + secondaryDfsHost: + description: The hostname with port if applicable for DFS storage + in the secondary location. + type: string + secondaryFileEndpoint: + description: The endpoint URL for file storage in the secondary + location. + type: string + secondaryFileHost: + description: The hostname with port if applicable for file storage + in the secondary location. + type: string + secondaryLocation: + description: The secondary location of the storage account. + type: string + secondaryQueueEndpoint: + description: The endpoint URL for queue storage in the secondary + location. + type: string + secondaryQueueHost: + description: The hostname with port if applicable for queue storage + in the secondary location. + type: string + secondaryTableEndpoint: + description: The endpoint URL for table storage in the secondary + location. + type: string + secondaryTableHost: + description: The hostname with port if applicable for table storage + in the secondary location. + type: string + secondaryWebEndpoint: + description: The endpoint URL for web storage in the secondary + location. + type: string + secondaryWebHost: + description: The hostname with port if applicable for web storage + in the secondary location. + type: string + sftpEnabled: + description: Boolean, enable SFTP for the storage account + type: boolean + shareProperties: + description: A share_properties block as defined below. + items: + properties: + corsRule: + description: A cors_rule block as defined below. + items: + properties: + allowedHeaders: + description: A list of headers that are allowed to + be a part of the cross-origin request. + items: + type: string + type: array + allowedMethods: + description: A list of HTTP methods that are allowed + to be executed by the origin. Valid options are + DELETE, GET, HEAD, MERGE, POST, OPTIONS, PUT or + PATCH. + items: + type: string + type: array + allowedOrigins: + description: A list of origin domains that will be + allowed by CORS. + items: + type: string + type: array + exposedHeaders: + description: A list of response headers that are exposed + to CORS clients. + items: + type: string + type: array + maxAgeInSeconds: + description: The number of seconds the client should + cache a preflight response. + type: number + type: object + type: array + retentionPolicy: + description: A retention_policy block as defined below. + items: + properties: + days: + description: Specifies the number of days that the + azurerm_storage_share should be retained, between + 1 and 365 days. Defaults to 7. + type: number + type: object + type: array + smb: + description: A smb block as defined below. + items: + properties: + authenticationTypes: + description: A set of SMB authentication methods. + Possible values are NTLMv2, and Kerberos. + items: + type: string + type: array + channelEncryptionType: + description: A set of SMB channel encryption. Possible + values are AES-128-CCM, AES-128-GCM, and AES-256-GCM. + items: + type: string + type: array + kerberosTicketEncryptionType: + description: A set of Kerberos ticket encryption. + Possible values are RC4-HMAC, and AES-256. + items: + type: string + type: array + multichannelEnabled: + description: Indicates whether multichannel is enabled. + Defaults to false. This is only supported on Premium + storage accounts. + type: boolean + versions: + description: A set of SMB protocol versions. Possible + values are SMB2.1, SMB3.0, and SMB3.1.1. + items: + type: string + type: array + type: object + type: array + type: object + type: array + sharedAccessKeyEnabled: + description: Indicates whether the storage account permits requests + to be authorized with the account access key via Shared Key. + If false, then all requests, including shared access signatures, + must be authorized with Azure Active Directory (Azure AD). The + default value is true. + type: boolean + staticWebsite: + description: A static_website block as defined below. + items: + properties: + error404Document: + description: The absolute path to a custom webpage that + should be used when a request is made which does not correspond + to an existing file. + type: string + indexDocument: + description: The webpage that Azure Storage serves for requests + to the root of a website or any subfolder. For example, + index.html. The value is case-sensitive. + type: string + type: object + type: array + tableEncryptionKeyType: + description: The encryption type of the table service. Possible + values are Service and Account. Changing this forces a new resource + to be created. Default value is Service. + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the resource. + type: object + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-azure/crds/storage.azure.kubedb.com_containers.yaml b/charts/kubedb-provider-azure/crds/storage.azure.kubedb.com_containers.yaml new file mode 100644 index 000000000..09935d17f --- /dev/null +++ b/charts/kubedb-provider-azure/crds/storage.azure.kubedb.com_containers.yaml @@ -0,0 +1,419 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: containers.storage.azure.kubedb.com +spec: + group: storage.azure.kubedb.com + names: + categories: + - crossplane + - managed + - azure + kind: Container + listKind: ContainerList + plural: containers + singular: container + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: Container is the Schema for the Containers API. Manages a Container + within an Azure Storage Account. + 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: ContainerSpec defines the desired state of Container + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + containerAccessType: + description: The Access Level configured for this Container. Possible + values are blob, container or private. Defaults to private. + type: string + metadata: + additionalProperties: + type: string + description: A mapping of MetaData for this Container. All metadata + keys should be lowercase. + type: object + storageAccountName: + description: The name of the Storage Account where the Container + should be created. Changing this forces a new resource to be + created. + type: string + storageAccountNameRef: + description: Reference to a Account to populate storageAccountName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + storageAccountNameSelector: + description: Selector for a Account to populate storageAccountName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + containerAccessType: + description: The Access Level configured for this Container. Possible + values are blob, container or private. Defaults to private. + type: string + metadata: + additionalProperties: + type: string + description: A mapping of MetaData for this Container. All metadata + keys should be lowercase. + type: object + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: ContainerStatus defines the observed state of Container. + properties: + atProvider: + properties: + containerAccessType: + description: The Access Level configured for this Container. Possible + values are blob, container or private. Defaults to private. + type: string + hasImmutabilityPolicy: + description: Is there an Immutability Policy configured on this + Storage Container? + type: boolean + hasLegalHold: + description: Is there a Legal Hold configured on this Storage + Container? + type: boolean + id: + description: The ID of the Storage Container. + type: string + metadata: + additionalProperties: + type: string + description: A mapping of MetaData for this Container. All metadata + keys should be lowercase. + type: object + resourceManagerId: + description: The Resource Manager ID of this Storage Container. + type: string + storageAccountName: + description: The name of the Storage Account where the Container + should be created. Changing this forces a new resource to be + created. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/kubedb-provider-gcp/Chart.yaml b/charts/kubedb-provider-gcp/Chart.yaml index e68caff9d..888de3c2f 100755 --- a/charts/kubedb-provider-gcp/Chart.yaml +++ b/charts/kubedb-provider-gcp/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: kubedb-provider-gcp description: A Helm chart for KubeDB GCP Provider for Crossplane type: application -version: v0.0.1 -appVersion: v0.0.1 +version: v2023.12.11 +appVersion: v0.0.2 home: https://github.com/kubedb/provider-gcp icon: https://cdn.appscode.com/images/products/searchlight/icons/android-icon-192x192.png sources: diff --git a/charts/kubedb-provider-gcp/README.md b/charts/kubedb-provider-gcp/README.md index 7e6758727..e67166e57 100644 --- a/charts/kubedb-provider-gcp/README.md +++ b/charts/kubedb-provider-gcp/README.md @@ -7,8 +7,8 @@ ```bash $ helm repo add appscode https://charts.appscode.com/stable/ $ helm repo update -$ helm search repo appscode/kubedb-provider-gcp --version=v0.0.1 -$ helm upgrade -i kubedb-provider-gcp appscode/kubedb-provider-gcp -n crossplane-system --create-namespace --version=v0.0.1 +$ helm search repo appscode/kubedb-provider-gcp --version=v2023.12.11 +$ helm upgrade -i kubedb-provider-gcp appscode/kubedb-provider-gcp -n crossplane-system --create-namespace --version=v2023.12.11 ``` ## Introduction @@ -24,7 +24,7 @@ This chart deploys a KubeDB GCP provider on a [Kubernetes](http://kubernetes.io) To install/upgrade the chart with the release name `kubedb-provider-gcp`: ```bash -$ helm upgrade -i kubedb-provider-gcp appscode/kubedb-provider-gcp -n crossplane-system --create-namespace --version=v0.0.1 +$ helm upgrade -i kubedb-provider-gcp appscode/kubedb-provider-gcp -n crossplane-system --create-namespace --version=v2023.12.11 ``` The command deploys a KubeDB GCP provider on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. @@ -75,12 +75,12 @@ The following table lists the configurable parameters of the `kubedb-provider-gc Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example: ```bash -$ helm upgrade -i kubedb-provider-gcp appscode/kubedb-provider-gcp -n crossplane-system --create-namespace --version=v0.0.1 --set replicaCount=1 +$ helm upgrade -i kubedb-provider-gcp appscode/kubedb-provider-gcp -n crossplane-system --create-namespace --version=v2023.12.11 --set replicaCount=1 ``` Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example: ```bash -$ helm upgrade -i kubedb-provider-gcp appscode/kubedb-provider-gcp -n crossplane-system --create-namespace --version=v0.0.1 --values values.yaml +$ helm upgrade -i kubedb-provider-gcp appscode/kubedb-provider-gcp -n crossplane-system --create-namespace --version=v2023.12.11 --values values.yaml ``` diff --git a/charts/kubedb-provider-gcp/crds/compute.gcp.kubedb.com_firewalls.yaml b/charts/kubedb-provider-gcp/crds/compute.gcp.kubedb.com_firewalls.yaml index 033c1beff..a3879d7ca 100644 --- a/charts/kubedb-provider-gcp/crds/compute.gcp.kubedb.com_firewalls.yaml +++ b/charts/kubedb-provider-gcp/crds/compute.gcp.kubedb.com_firewalls.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: firewalls.compute.gcp.kubedb.com spec: group: compute.gcp.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -101,8 +101,6 @@ spec: udp, icmp, esp, ah, sctp, ipip, all), or the IP protocol number. type: string - required: - - protocol type: object type: array deny: @@ -140,8 +138,6 @@ spec: udp, icmp, esp, ah, sctp, ipip, all), or the IP protocol number. type: string - required: - - protocol type: object type: array description: @@ -205,8 +201,6 @@ spec: or exclude metadata for firewall logs. Possible values: ["EXCLUDE_ALL_METADATA", "INCLUDE_ALL_METADATA"]' type: string - required: - - metadata type: object type: array network: @@ -416,21 +410,309 @@ spec: type: string type: array type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + allow: + description: The list of ALLOW rules specified by this firewall. + Each rule specifies a protocol and port-range tuple that describes + a permitted connection. Structure is documented below. The list + of ALLOW rules specified by this firewall. Each rule specifies + a protocol and port-range tuple that describes a permitted connection. + items: + properties: + ports: + description: "An optional list of ports to which this rule + applies. This field is only applicable for UDP or TCP + protocol. Each entry must be either an integer or a range. + If not specified, this rule applies to connections through + any port. Example inputs include: [\"22\"], [\"80\",\"443\"], + and [\"12345-12349\"]. An optional list of ports to which + this rule applies. This field is only applicable for UDP + or TCP protocol. Each entry must be either an integer + or a range. If not specified, this rule applies to connections + through any port. \n Example inputs include: [\"22\"], + [\"80\",\"443\"], and [\"12345-12349\"]." + items: + type: string + type: array + protocol: + description: The IP protocol to which this rule applies. + The protocol type is required when creating a firewall + rule. This value can either be one of the following well + known protocol strings (tcp, udp, icmp, esp, ah, sctp, + ipip, all), or the IP protocol number. The IP protocol + to which this rule applies. The protocol type is required + when creating a firewall rule. This value can either be + one of the following well known protocol strings (tcp, + udp, icmp, esp, ah, sctp, ipip, all), or the IP protocol + number. + type: string + type: object + type: array + deny: + description: The list of DENY rules specified by this firewall. + Each rule specifies a protocol and port-range tuple that describes + a denied connection. Structure is documented below. The list + of DENY rules specified by this firewall. Each rule specifies + a protocol and port-range tuple that describes a denied connection. + items: + properties: + ports: + description: "An optional list of ports to which this rule + applies. This field is only applicable for UDP or TCP + protocol. Each entry must be either an integer or a range. + If not specified, this rule applies to connections through + any port. Example inputs include: [\"22\"], [\"80\",\"443\"], + and [\"12345-12349\"]. An optional list of ports to which + this rule applies. This field is only applicable for UDP + or TCP protocol. Each entry must be either an integer + or a range. If not specified, this rule applies to connections + through any port. \n Example inputs include: [\"22\"], + [\"80\",\"443\"], and [\"12345-12349\"]." + items: + type: string + type: array + protocol: + description: The IP protocol to which this rule applies. + The protocol type is required when creating a firewall + rule. This value can either be one of the following well + known protocol strings (tcp, udp, icmp, esp, ah, sctp, + ipip, all), or the IP protocol number. The IP protocol + to which this rule applies. The protocol type is required + when creating a firewall rule. This value can either be + one of the following well known protocol strings (tcp, + udp, icmp, esp, ah, sctp, ipip, all), or the IP protocol + number. + type: string + type: object + type: array + description: + description: An optional description of this resource. Provide + this property when you create the resource. An optional description + of this resource. Provide this property when you create the + resource. + type: string + destinationRanges: + description: If destination ranges are specified, the firewall + will apply only to traffic that has destination IP address in + these ranges. These ranges must be expressed in CIDR format. + IPv4 or IPv6 ranges are supported. If destination ranges are + specified, the firewall will apply only to traffic that has + destination IP address in these ranges. These ranges must be + expressed in CIDR format. IPv4 or IPv6 ranges are supported. + items: + type: string + type: array + direction: + description: 'Direction of traffic to which this firewall applies; + default is INGRESS. Note: For INGRESS traffic, one of source_ranges, + source_tags or source_service_accounts is required. Possible + values are: INGRESS, EGRESS. Direction of traffic to which this + firewall applies; default is INGRESS. Note: For INGRESS traffic, + one of ''source_ranges'', ''source_tags'' or ''source_service_accounts'' + is required. Possible values: ["INGRESS", "EGRESS"]' + type: string + disabled: + description: Denotes whether the firewall rule is disabled, i.e + not applied to the network it is associated with. When set to + true, the firewall rule is not enforced and the network behaves + as if it did not exist. If this is unspecified, the firewall + rule will be enabled. Denotes whether the firewall rule is disabled, + i.e not applied to the network it is associated with. When set + to true, the firewall rule is not enforced and the network behaves + as if it did not exist. If this is unspecified, the firewall + rule will be enabled. + type: boolean + enableLogging: + description: This field denotes whether to enable logging for + a particular firewall rule. If logging is enabled, logs will + be exported to Stackdriver. Deprecated in favor of log_config + This field denotes whether to enable logging for a particular + firewall rule. If logging is enabled, logs will be exported + to Stackdriver. + type: boolean + logConfig: + description: This field denotes the logging options for a particular + firewall rule. If defined, logging is enabled, and logs will + be exported to Cloud Logging. Structure is documented below. + This field denotes the logging options for a particular firewall + rule. If defined, logging is enabled, and logs will be exported + to Cloud Logging. + items: + properties: + metadata: + description: 'This field denotes whether to include or exclude + metadata for firewall logs. Possible values are: EXCLUDE_ALL_METADATA, + INCLUDE_ALL_METADATA. This field denotes whether to include + or exclude metadata for firewall logs. Possible values: + ["EXCLUDE_ALL_METADATA", "INCLUDE_ALL_METADATA"]' + type: string + type: object + type: array + priority: + description: Priority for this rule. This is an integer between + 0 and 65535, both inclusive. When not specified, the value assumed + is 1000. Relative priorities determine precedence of conflicting + rules. Lower value of priority implies higher precedence (eg, + a rule with priority 0 has higher precedence than a rule with + priority 1). DENY rules take precedence over ALLOW rules having + equal priority. Priority for this rule. This is an integer between + 0 and 65535, both inclusive. When not specified, the value assumed + is 1000. Relative priorities determine precedence of conflicting + rules. Lower value of priority implies higher precedence (eg, + a rule with priority 0 has higher precedence than a rule with + priority 1). DENY rules take precedence over ALLOW rules having + equal priority. + type: number + project: + description: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + type: string + sourceRanges: + description: If source ranges are specified, the firewall will + apply only to traffic that has source IP address in these ranges. + These ranges must be expressed in CIDR format. One or both of + sourceRanges and sourceTags may be set. If both properties are + set, the firewall will apply to traffic that has source IP address + within sourceRanges OR the source IP that belongs to a tag listed + in the sourceTags property. The connection does not need to + match both properties for the firewall to apply. IPv4 or IPv6 + ranges are supported. For INGRESS traffic, one of source_ranges, + source_tags or source_service_accounts is required. If source + ranges are specified, the firewall will apply only to traffic + that has source IP address in these ranges. These ranges must + be expressed in CIDR format. One or both of sourceRanges and + sourceTags may be set. If both properties are set, the firewall + will apply to traffic that has source IP address within sourceRanges + OR the source IP that belongs to a tag listed in the sourceTags + property. The connection does not need to match both properties + for the firewall to apply. IPv4 or IPv6 ranges are supported. + For INGRESS traffic, one of 'source_ranges', 'source_tags' or + 'source_service_accounts' is required. + items: + type: string + type: array + sourceServiceAccounts: + description: If source service accounts are specified, the firewall + will apply only to traffic originating from an instance with + a service account in this list. Source service accounts cannot + be used to control traffic to an instance's external IP address + because service accounts are associated with an instance, not + an IP address. sourceRanges can be set at the same time as sourceServiceAccounts. + If both are set, the firewall will apply to traffic that has + source IP address within sourceRanges OR the source IP belongs + to an instance with service account listed in sourceServiceAccount. + The connection does not need to match both properties for the + firewall to apply. sourceServiceAccounts cannot be used at the + same time as sourceTags or targetTags. For INGRESS traffic, + one of source_ranges, source_tags or source_service_accounts + is required. If source service accounts are specified, the firewall + will apply only to traffic originating from an instance with + a service account in this list. Source service accounts cannot + be used to control traffic to an instance's external IP address + because service accounts are associated with an instance, not + an IP address. sourceRanges can be set at the same time as sourceServiceAccounts. + If both are set, the firewall will apply to traffic that has + source IP address within sourceRanges OR the source IP belongs + to an instance with service account listed in sourceServiceAccount. + The connection does not need to match both properties for the + firewall to apply. sourceServiceAccounts cannot be used at the + same time as sourceTags or targetTags. For INGRESS traffic, + one of 'source_ranges', 'source_tags' or 'source_service_accounts' + is required. + items: + type: string + type: array + sourceTags: + description: If source tags are specified, the firewall will apply + only to traffic with source IP that belongs to a tag listed + in source tags. Source tags cannot be used to control traffic + to an instance's external IP address. Because tags are associated + with an instance, not an IP address. One or both of sourceRanges + and sourceTags may be set. If both properties are set, the firewall + will apply to traffic that has source IP address within sourceRanges + OR the source IP that belongs to a tag listed in the sourceTags + property. The connection does not need to match both properties + for the firewall to apply. For INGRESS traffic, one of source_ranges, + source_tags or source_service_accounts is required. If source + tags are specified, the firewall will apply only to traffic + with source IP that belongs to a tag listed in source tags. + Source tags cannot be used to control traffic to an instance's + external IP address. Because tags are associated with an instance, + not an IP address. One or both of sourceRanges and sourceTags + may be set. If both properties are set, the firewall will apply + to traffic that has source IP address within sourceRanges OR + the source IP that belongs to a tag listed in the sourceTags + property. The connection does not need to match both properties + for the firewall to apply. For INGRESS traffic, one of 'source_ranges', + 'source_tags' or 'source_service_accounts' is required. + items: + type: string + type: array + targetServiceAccounts: + description: A list of service accounts indicating sets of instances + located in the network that may make network connections as + specified in allowed[]. targetServiceAccounts cannot be used + at the same time as targetTags or sourceTags. If neither targetServiceAccounts + nor targetTags are specified, the firewall rule applies to all + instances on the specified network. A list of service accounts + indicating sets of instances located in the network that may + make network connections as specified in allowed[]. targetServiceAccounts + cannot be used at the same time as targetTags or sourceTags. + If neither targetServiceAccounts nor targetTags are specified, + the firewall rule applies to all instances on the specified + network. + items: + type: string + type: array + targetTags: + description: A list of instance tags indicating sets of instances + located in the network that may make network connections as + specified in allowed[]. If no targetTags are specified, the + firewall rule applies to all instances on the specified network. + A list of instance tags indicating sets of instances located + in the network that may make network connections as specified + in allowed[]. If no targetTags are specified, the firewall rule + applies to all instances on the specified network. + items: + type: string + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -469,42 +751,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -921,6 +1167,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-gcp/crds/compute.gcp.kubedb.com_networkpeerings.yaml b/charts/kubedb-provider-gcp/crds/compute.gcp.kubedb.com_networkpeerings.yaml index f49be513c..eef49a3f2 100644 --- a/charts/kubedb-provider-gcp/crds/compute.gcp.kubedb.com_networkpeerings.yaml +++ b/charts/kubedb-provider-gcp/crds/compute.gcp.kubedb.com_networkpeerings.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: networkpeerings.compute.gcp.kubedb.com spec: group: compute.gcp.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -93,11 +93,157 @@ spec: description: The primary network of the peering. The primary network of the peering. type: string + networkRef: + description: Reference to a Network in compute to populate network. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + networkSelector: + description: Selector for a Network in compute to populate network. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object peerNetwork: description: The peer network in the peering. The peer network may belong to a different project. The peer network in the peering. The peer network may belong to a different project. type: string + peerNetworkRef: + description: Reference to a Network in compute to populate peerNetwork. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + peerNetworkSelector: + description: Selector for a Network in compute to populate peerNetwork. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object stackType: description: 'Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default @@ -106,24 +252,76 @@ spec: imported or exported between peer networks. The default value is IPV4_ONLY. Possible values: ["IPV4_ONLY", "IPV4_IPV6"]' type: string - required: - - network type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + exportCustomRoutes: + description: Whether to export the custom routes to the peer network. + Defaults to false. Whether to export the custom routes to the + peer network. Defaults to false. + type: boolean + exportSubnetRoutesWithPublicIp: + description: Whether subnet routes with public IP range are exported. + The default value is true, all subnet routes are exported. The + IPv4 special-use ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) + are always exported to peers and are not controlled by this + field. + type: boolean + importCustomRoutes: + description: Whether to import the custom routes from the peer + network. Defaults to false. Whether to export the custom routes + from the peer network. Defaults to false. + type: boolean + importSubnetRoutesWithPublicIp: + description: Whether subnet routes with public IP range are imported. + The default value is false. The IPv4 special-use ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) + are always imported from peers and are not controlled by this + field. + type: boolean + stackType: + description: 'Which IP version(s) of traffic and routes are allowed + to be imported or exported between peer networks. The default + value is IPV4_ONLY. Possible values: ["IPV4_ONLY", "IPV4_IPV6"]. + Which IP version(s) of traffic and routes are allowed to be + imported or exported between peer networks. The default value + is IPV4_ONLY. Possible values: ["IPV4_ONLY", "IPV4_IPV6"]' + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -162,42 +360,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -295,9 +457,6 @@ spec: required: - forProvider type: object - x-kubernetes-validations: - - message: peerNetwork is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.peerNetwork) status: description: NetworkPeeringStatus defines the observed state of NetworkPeering. properties: @@ -391,6 +550,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-gcp/crds/compute.gcp.kubedb.com_networks.yaml b/charts/kubedb-provider-gcp/crds/compute.gcp.kubedb.com_networks.yaml index 005ddf92b..b497b85ab 100644 --- a/charts/kubedb-provider-gcp/crds/compute.gcp.kubedb.com_networks.yaml +++ b/charts/kubedb-provider-gcp/crds/compute.gcp.kubedb.com_networks.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: networks.compute.gcp.kubedb.com spec: group: compute.gcp.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -155,21 +155,132 @@ spec: ["REGIONAL", "GLOBAL"]' type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + autoCreateSubnetworks: + description: "When set to true, the network is created in \"auto + subnet mode\" and it will create a subnet for each region automatically + across the 10.128.0.0/9 address range. When set to false, the + network is created in \"custom subnet mode\" so the user can + explicitly connect subnetwork resources. When set to 'true', + the network is created in \"auto subnet mode\" and it will create + a subnet for each region automatically across the '10.128.0.0/9' + address range. \n When set to 'false', the network is created + in \"custom subnet mode\" so the user can explicitly connect + subnetwork resources." + type: boolean + deleteDefaultRoutesOnCreate: + description: If set to true, default routes (0.0.0.0/0) will be + deleted immediately after network creation. Defaults to false. + If set to 'true', default routes ('0.0.0.0/0') will be deleted + immediately after network creation. Defaults to 'false'. + type: boolean + description: + description: An optional description of this resource. The resource + must be recreated to modify this field. An optional description + of this resource. The resource must be recreated to modify this + field. + type: string + enableUlaInternalIpv6: + description: Enable ULA internal ipv6 on this network. Enabling + this feature will assign a /48 from google defined ULA prefix + fd20::/20. Enable ULA internal ipv6 on this network. Enabling + this feature will assign a /48 from google defined ULA prefix + fd20::/20. + type: boolean + internalIpv6Range: + description: When enabling ula internal ipv6, caller optionally + can specify the /48 range they want from the google defined + ULA prefix fd20::/20. The input must be a valid /48 ULA IPv6 + address and must be within the fd20::/20. Operation will fail + if the speficied /48 is already in used by another resource. + If the field is not speficied, then a /48 range will be randomly + allocated from fd20::/20 and returned via this field. When enabling + ula internal ipv6, caller optionally can specify the /48 range + they want from the google defined ULA prefix fd20::/20. The + input must be a valid /48 ULA IPv6 address and must be within + the fd20::/20. Operation will fail if the speficied /48 is already + in used by another resource. If the field is not speficied, + then a /48 range will be randomly allocated from fd20::/20 and + returned via this field. + type: string + mtu: + description: Maximum Transmission Unit in bytes. The default value + is 1460 bytes. The minimum value for this field is 1300 and + the maximum value is 8896 bytes (jumbo frames). Note that packets + larger than 1500 bytes (standard Ethernet) can be subject to + TCP-MSS clamping or dropped with an ICMP Fragmentation-Needed + message if the packets are routed to the Internet or other VPCs + with varying MTUs. Maximum Transmission Unit in bytes. The default + value is 1460 bytes. The minimum value for this field is 1300 + and the maximum value is 8896 bytes (jumbo frames). Note that + packets larger than 1500 bytes (standard Ethernet) can be subject + to TCP-MSS clamping or dropped with an ICMP 'Fragmentation-Needed' + message if the packets are routed to the Internet or other VPCs + with varying MTUs. + type: number + networkFirewallPolicyEnforcementOrder: + description: 'Set the order that Firewall Rules and Firewall Policies + are evaluated. Default value is AFTER_CLASSIC_FIREWALL. Possible + values are: BEFORE_CLASSIC_FIREWALL, AFTER_CLASSIC_FIREWALL. + Set the order that Firewall Rules and Firewall Policies are + evaluated. Default value: "AFTER_CLASSIC_FIREWALL" Possible + values: ["BEFORE_CLASSIC_FIREWALL", "AFTER_CLASSIC_FIREWALL"]' + type: string + project: + description: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + type: string + routingMode: + description: 'The network-wide routing mode to use. If set to + REGIONAL, this network''s cloud routers will only advertise + routes with subnetworks of this network in the same region as + the router. If set to GLOBAL, this network''s cloud routers + will advertise routes with all subnetworks of this network, + across regions. Possible values are: REGIONAL, GLOBAL. The network-wide + routing mode to use. If set to ''REGIONAL'', this network''s + cloud routers will only advertise routes with subnetworks of + this network in the same region as the router. If set to ''GLOBAL'', + this network''s cloud routers will advertise routes with all + subnetworks of this network, across regions. Possible values: + ["REGIONAL", "GLOBAL"]' + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -208,42 +319,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -480,6 +555,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-gcp/crds/gcp.kubedb.com_providerconfigs.yaml b/charts/kubedb-provider-gcp/crds/gcp.kubedb.com_providerconfigs.yaml index 96dceecf5..17d35a6de 100644 --- a/charts/kubedb-provider-gcp/crds/gcp.kubedb.com_providerconfigs.yaml +++ b/charts/kubedb-provider-gcp/crds/gcp.kubedb.com_providerconfigs.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: providerconfigs.gcp.kubedb.com spec: group: gcp.kubedb.com @@ -142,6 +142,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map users: description: Users of this provider configuration. format: int64 diff --git a/charts/kubedb-provider-gcp/crds/gcp.kubedb.com_providerconfigusages.yaml b/charts/kubedb-provider-gcp/crds/gcp.kubedb.com_providerconfigusages.yaml index 2c0fc707c..06bfa19bf 100644 --- a/charts/kubedb-provider-gcp/crds/gcp.kubedb.com_providerconfigusages.yaml +++ b/charts/kubedb-provider-gcp/crds/gcp.kubedb.com_providerconfigusages.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: providerconfigusages.gcp.kubedb.com spec: group: gcp.kubedb.com diff --git a/charts/kubedb-provider-gcp/crds/gcp.kubedb.com_storeconfigs.yaml b/charts/kubedb-provider-gcp/crds/gcp.kubedb.com_storeconfigs.yaml index fb8003ac6..cf8670408 100644 --- a/charts/kubedb-provider-gcp/crds/gcp.kubedb.com_storeconfigs.yaml +++ b/charts/kubedb-provider-gcp/crds/gcp.kubedb.com_storeconfigs.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: storeconfigs.gcp.kubedb.com spec: group: gcp.kubedb.com @@ -152,146 +152,6 @@ spec: - Vault - Plugin type: string - vault: - description: 'Vault configures a Vault secret store. Deprecated: This - API is scheduled to be removed in a future release. Vault should - be used as a plugin going forward. See https://github.com/crossplane-contrib/ess-plugin-vault - for more information.' - properties: - auth: - description: Auth configures an authentication method for Vault. - properties: - method: - description: Method configures which auth method will be used. - type: string - token: - description: Token configures Token Auth for Vault. - properties: - env: - description: Env is a reference to an environment variable - that contains credentials that must be used to connect - to the provider. - properties: - name: - description: Name is the name of an environment variable. - type: string - required: - - name - type: object - fs: - description: Fs is a reference to a filesystem location - that contains credentials that must be used to connect - to the provider. - properties: - path: - description: Path is a filesystem path. - type: string - required: - - path - type: object - secretRef: - description: A SecretRef is a reference to a secret key - that contains the credentials that must be used to connect - to the provider. - properties: - key: - description: The key to select. - type: string - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - key - - name - - namespace - type: object - source: - description: Source of the credentials. - enum: - - None - - Secret - - Environment - - Filesystem - type: string - required: - - source - type: object - required: - - method - type: object - caBundle: - description: CABundle configures CA bundle for Vault Server. - properties: - env: - description: Env is a reference to an environment variable - that contains credentials that must be used to connect to - the provider. - properties: - name: - description: Name is the name of an environment variable. - type: string - required: - - name - type: object - fs: - description: Fs is a reference to a filesystem location that - contains credentials that must be used to connect to the - provider. - properties: - path: - description: Path is a filesystem path. - type: string - required: - - path - type: object - secretRef: - description: A SecretRef is a reference to a secret key that - contains the credentials that must be used to connect to - the provider. - properties: - key: - description: The key to select. - type: string - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - key - - name - - namespace - type: object - source: - description: Source of the credentials. - enum: - - None - - Secret - - Environment - - Filesystem - type: string - required: - - source - type: object - mountPath: - description: MountPath is the mount path of the KV secrets engine. - type: string - server: - description: Server is the url of the Vault server, e.g. "https://vault.acme.org" - type: string - version: - default: v2 - description: Version of the KV Secrets engine of Vault. https://www.vaultproject.io/docs/secrets/kv - type: string - required: - - auth - - mountPath - - server - type: object required: - defaultScope type: object @@ -331,6 +191,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-gcp/crds/redis.gcp.kubedb.com_instances.yaml b/charts/kubedb-provider-gcp/crds/redis.gcp.kubedb.com_instances.yaml index 6cb9a4b4b..1fbb6e0f1 100644 --- a/charts/kubedb-provider-gcp/crds/redis.gcp.kubedb.com_instances.yaml +++ b/charts/kubedb-provider-gcp/crds/redis.gcp.kubedb.com_instances.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: instances.redis.gcp.kubedb.com spec: group: redis.gcp.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -196,9 +196,6 @@ spec: type: number type: object type: array - required: - - day - - startTime type: object type: array type: object @@ -345,21 +342,313 @@ spec: required: - region type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + alternativeLocationId: + description: Only applicable to STANDARD_HA tier which protects + the instance against zonal failures by provisioning it across + two zones. If provided, it must be a different zone from the + one provided in [locationId]. Only applicable to STANDARD_HA + tier which protects the instance against zonal failures by provisioning + it across two zones. If provided, it must be a different zone + from the one provided in [locationId]. + type: string + authEnabled: + description: Optional. Indicates whether OSS Redis AUTH is enabled + for the instance. If set to "true" AUTH is enabled on the instance. + Default value is "false" meaning AUTH is disabled. Optional. + Indicates whether OSS Redis AUTH is enabled for the instance. + If set to "true" AUTH is enabled on the instance. Default value + is "false" meaning AUTH is disabled. + type: boolean + authorizedNetwork: + description: The full name of the Google Compute Engine network + to which the instance is connected. If left unspecified, the + default network will be used. The full name of the Google Compute + Engine network to which the instance is connected. If left unspecified, + the default network will be used. + type: string + connectMode: + description: 'The connection mode of the Redis instance. Default + value is DIRECT_PEERING. Possible values are: DIRECT_PEERING, + PRIVATE_SERVICE_ACCESS. The connection mode of the Redis instance. + Default value: "DIRECT_PEERING" Possible values: ["DIRECT_PEERING", + "PRIVATE_SERVICE_ACCESS"]' + type: string + customerManagedKey: + description: Optional. The KMS key reference that you want to + use to encrypt the data at rest for this Redis instance. If + this is provided, CMEK is enabled. Optional. The KMS key reference + that you want to use to encrypt the data at rest for this Redis + instance. If this is provided, CMEK is enabled. + type: string + displayName: + description: An arbitrary and optional user-provided name for + the instance. An arbitrary and optional user-provided name for + the instance. + type: string + labels: + additionalProperties: + type: string + description: Resource labels to represent user provided metadata. + Resource labels to represent user provided metadata. + type: object + locationId: + description: The zone where the instance will be provisioned. + If not provided, the service will choose a zone for the instance. + For STANDARD_HA tier, instances will be created across two zones + for protection against zonal failures. If [alternativeLocationId] + is also provided, it must be different from [locationId]. The + zone where the instance will be provisioned. If not provided, + the service will choose a zone for the instance. For STANDARD_HA + tier, instances will be created across two zones for protection + against zonal failures. If [alternativeLocationId] is also provided, + it must be different from [locationId]. + type: string + maintenancePolicy: + description: Maintenance policy for an instance. Structure is + documented below. Maintenance policy for an instance. + items: + properties: + description: + description: Optional. Description of what this policy is + for. Create/Update methods return INVALID_ARGUMENT if + the length is greater than 512. Optional. Description + of what this policy is for. Create/Update methods return + INVALID_ARGUMENT if the length is greater than 512. + type: string + weeklyMaintenanceWindow: + description: Optional. Maintenance window that is applied + to resources covered by this policy. Minimum 1. For the + current version, the maximum number of weekly_window is + expected to be one. Structure is documented below. Optional. + Maintenance window that is applied to resources covered + by this policy. Minimum 1. For the current version, the + maximum number of weekly_window is expected to be one. + items: + properties: + day: + description: "Required. The day of week that maintenance + updates occur. Required. The day of week that maintenance + updates occur. \n - DAY_OF_WEEK_UNSPECIFIED: The + day of the week is unspecified. - MONDAY: Monday + - TUESDAY: Tuesday - WEDNESDAY: Wednesday - THURSDAY: + Thursday - FRIDAY: Friday - SATURDAY: Saturday - + SUNDAY: Sunday Possible values: [\"DAY_OF_WEEK_UNSPECIFIED\", + \"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", + \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]" + type: string + startTime: + description: Required. Start time of the window in + UTC time. Structure is documented below. Required. + Start time of the window in UTC time. + items: + properties: + hours: + description: Hours of day in 24 hour format. + Should be from 0 to 23. An API may choose + to allow the value "24:00:00" for scenarios + like business closing time. Hours of day in + 24 hour format. Should be from 0 to 23. An + API may choose to allow the value "24:00:00" + for scenarios like business closing time. + type: number + minutes: + description: Minutes of hour of day. Must be + from 0 to 59. Minutes of hour of day. Must + be from 0 to 59. + type: number + nanos: + description: Fractions of seconds in nanoseconds. + Must be from 0 to 999,999,999. Fractions of + seconds in nanoseconds. Must be from 0 to + 999,999,999. + type: number + seconds: + description: Seconds of minutes of the time. + Must normally be from 0 to 59. An API may + allow the value 60 if it allows leap-seconds. + Seconds of minutes of the time. Must normally + be from 0 to 59. An API may allow the value + 60 if it allows leap-seconds. + type: number + type: object + type: array + type: object + type: array + type: object + type: array + maintenanceSchedule: + description: Upcoming maintenance schedule. Structure is documented + below. Upcoming maintenance schedule. + items: + type: object + type: array + memorySizeGb: + description: Redis memory size in GiB. Redis memory size in GiB. + type: number + persistenceConfig: + description: Persistence configuration for an instance. Structure + is documented below. Persistence configuration for an instance. + items: + properties: + persistenceMode: + description: "Optional. Controls whether Persistence features + are enabled. If not provided, the existing value will + be used. Optional. Controls whether Persistence features + are enabled. If not provided, the existing value will + be used. \n - DISABLED: \tPersistence is disabled for + the instance, and any existing snapshots are deleted. + - RDB: RDB based Persistence is enabled. Possible values: + [\"DISABLED\", \"RDB\"]" + type: string + rdbSnapshotPeriod: + description: "Optional. Available snapshot periods for scheduling. + Optional. Available snapshot periods for scheduling. \n + - ONE_HOUR:\tSnapshot every 1 hour. - SIX_HOURS:\tSnapshot + every 6 hours. - TWELVE_HOURS:\tSnapshot every 12 hours. + - TWENTY_FOUR_HOURS:\tSnapshot every 24 hours. Possible + values: [\"ONE_HOUR\", \"SIX_HOURS\", \"TWELVE_HOURS\", + \"TWENTY_FOUR_HOURS\"]" + type: string + rdbSnapshotStartTime: + description: 'Optional. Date and time that the first snapshot + was/will be attempted, and to which future snapshots will + be aligned. If not provided, the current time will be + used. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond + resolution and up to nine fractional digits. Examples: + "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z". + Optional. Date and time that the first snapshot was/will + be attempted, and to which future snapshots will be aligned. + If not provided, the current time will be used. A timestamp + in RFC3339 UTC "Zulu" format, with nanosecond resolution + and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" + and "2014-10-02T15:01:23.045123456Z".' + type: string + type: object + type: array + project: + description: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + type: string + readReplicasMode: + description: 'Optional. Read replica mode. Can only be specified + when trying to create the instance. If not set, Memorystore + Redis backend will default to READ_REPLICAS_DISABLED. Optional. + Read replica mode. Can only be specified when trying to create + the instance. If not set, Memorystore Redis backend will default + to READ_REPLICAS_DISABLED. - READ_REPLICAS_DISABLED: If disabled, + read endpoint will not be provided and the instance cannot scale + up or down the number of replicas. - READ_REPLICAS_ENABLED: + If enabled, read endpoint will be provided and the instance + can scale up and down the number of replicas. Possible values: + ["READ_REPLICAS_DISABLED", "READ_REPLICAS_ENABLED"]' + type: string + redisConfigs: + additionalProperties: + type: string + description: 'Redis configuration parameters, according to http://redis.io/topics/config. + Please check Memorystore documentation for the list of supported + parameters: https://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#Instance.FIELDS.redis_configs + Redis configuration parameters, according to http://redis.io/topics/config. + Please check Memorystore documentation for the list of supported + parameters: https://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#Instance.FIELDS.redis_configs' + type: object + redisVersion: + description: The version of Redis software. If not provided, latest + supported version will be used. Please check the API documentation + linked at the top for the latest valid values. The version of + Redis software. If not provided, latest supported version will + be used. Please check the API documentation linked at the top + for the latest valid values. + type: string + replicaCount: + description: Optional. The number of replica nodes. The valid + range for the Standard Tier with read replicas enabled is [1-5] + and defaults to 2. If read replicas are not enabled for a Standard + Tier instance, the only valid value is 1 and the default is + 1. The valid value for basic tier is 0 and the default is also + 0. Optional. The number of replica nodes. The valid range for + the Standard Tier with read replicas enabled is [1-5] and defaults + to 2. If read replicas are not enabled for a Standard Tier instance, + the only valid value is 1 and the default is 1. The valid value + for basic tier is 0 and the default is also 0. + type: number + reservedIpRange: + description: The CIDR range of internal addresses that are reserved + for this instance. If not provided, the service will choose + an unused /29 block, for example, 10.0.0.0/29 or 192.168.0.0/29. + Ranges must be unique and non-overlapping with existing subnets + in an authorized network. The CIDR range of internal addresses + that are reserved for this instance. If not provided, the service + will choose an unused /29 block, for example, 10.0.0.0/29 or + 192.168.0.0/29. Ranges must be unique and non-overlapping with + existing subnets in an authorized network. + type: string + secondaryIpRange: + description: Optional. Additional IP range for node placement. + Required when enabling read replicas on an existing instance. + For DIRECT_PEERING mode value must be a CIDR range of size /28, + or "auto". For PRIVATE_SERVICE_ACCESS mode value must be the + name of an allocated address range associated with the private + service access connection, or "auto". Optional. Additional IP + range for node placement. Required when enabling read replicas + on an existing instance. For DIRECT_PEERING mode value must + be a CIDR range of size /28, or "auto". For PRIVATE_SERVICE_ACCESS + mode value must be the name of an allocated address range associated + with the private service access connection, or "auto". + type: string + tier: + description: "The service tier of the instance. Must be one of + these values: The service tier of the instance. Must be one + of these values: \n - BASIC: standalone instance - STANDARD_HA: + highly available primary/replica instances Default value: \"BASIC\" + Possible values: [\"BASIC\", \"STANDARD_HA\"]" + type: string + transitEncryptionMode: + description: "The TLS mode of the Redis instance, If not provided, + TLS is disabled for the instance. The TLS mode of the Redis + instance, If not provided, TLS is disabled for the instance. + \n - SERVER_AUTHENTICATION: Client to Server traffic encryption + enabled with server authentication Default value: \"DISABLED\" + Possible values: [\"SERVER_AUTHENTICATION\", \"DISABLED\"]" + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -398,42 +687,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -532,8 +785,10 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: memorySizeGb is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.memorySizeGb) + - message: spec.forProvider.memorySizeGb is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.memorySizeGb) + || (has(self.initProvider) && has(self.initProvider.memorySizeGb))' status: description: InstanceStatus defines the observed state of Instance. properties: @@ -1009,6 +1264,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_databaseiammembers.yaml b/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_databaseiammembers.yaml index b460a0bb8..1956dcfca 100644 --- a/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_databaseiammembers.yaml +++ b/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_databaseiammembers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: databaseiammembers.spanner.gcp.kubedb.com spec: group: spanner.gcp.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -75,9 +75,6 @@ spec: type: string title: type: string - required: - - expression - - title type: object type: array database: @@ -237,21 +234,61 @@ spec: role: type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + condition: + items: + properties: + description: + type: string + expression: + type: string + title: + type: string + type: object + type: array + member: + type: string + project: + type: string + role: + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -290,42 +327,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -424,10 +425,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: member is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.member) - - message: role is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.role) + - message: spec.forProvider.member is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.member) + || (has(self.initProvider) && has(self.initProvider.member))' + - message: spec.forProvider.role is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.role) + || (has(self.initProvider) && has(self.initProvider.role))' status: description: DatabaseIAMMemberStatus defines the observed state of DatabaseIAMMember. properties: @@ -492,6 +497,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_databases.yaml b/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_databases.yaml index b9f93ea33..cf84636d4 100644 --- a/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_databases.yaml +++ b/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_databases.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: databases.spanner.gcp.kubedb.com spec: group: spanner.gcp.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -100,14 +100,85 @@ spec: of the KMS key to use to encrypt this database. This key must exist in the same location as the Spanner Database. type: string - required: - - kmsKeyName type: object type: array instance: description: The instance to create the database on. The instance to create the database on. type: string + instanceRef: + description: Reference to a Instance in spanner to populate instance. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + instanceSelector: + description: Selector for a Instance in spanner to populate instance. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object project: description: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. @@ -126,24 +197,99 @@ spec: property is used, you must avoid adding new DDL statements to 'ddl' that update the database's version_retention_period. type: string - required: - - instance type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + databaseDialect: + description: 'The dialect of the Cloud Spanner Database. If it + is not provided, "GOOGLE_STANDARD_SQL" will be used. Possible + values are: GOOGLE_STANDARD_SQL, POSTGRESQL. The dialect of + the Cloud Spanner Database. If it is not provided, "GOOGLE_STANDARD_SQL" + will be used. Possible values: ["GOOGLE_STANDARD_SQL", "POSTGRESQL"]' + type: string + ddl: + description: 'An optional list of DDL statements to run inside + the newly created database. Statements can create tables, indexes, + etc. These statements execute atomically with the creation of + the database: if there is an error in any statement, the database + is not created. An optional list of DDL statements to run inside + the newly created database. Statements can create tables, indexes, + etc. These statements execute atomically with the creation of + the database: if there is an error in any statement, the database + is not created.' + items: + type: string + type: array + deletionProtection: + type: boolean + encryptionConfig: + description: Encryption configuration for the database Structure + is documented below. Encryption configuration for the database + items: + properties: + kmsKeyName: + description: Fully qualified name of the KMS key to use + to encrypt this database. This key must exist in the same + location as the Spanner Database. Fully qualified name + of the KMS key to use to encrypt this database. This key + must exist in the same location as the Spanner Database. + type: string + type: object + type: array + project: + description: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + type: string + versionRetentionPeriod: + description: The retention period for the database. The retention + period must be between 1 hour and 7 days, and can be specified + in days, hours, minutes, or seconds. For example, the values + 1d, 24h, 1440m, and 86400s are equivalent. Default value is + 1h. If this property is used, you must avoid adding new DDL + statements to ddl that update the database's version_retention_period. + The retention period for the database. The retention period + must be between 1 hour and 7 days, and can be specified in days, + hours, minutes, or seconds. For example, the values 1d, 24h, + 1440m, and 86400s are equivalent. Default value is 1h. If this + property is used, you must avoid adding new DDL statements to + 'ddl' that update the database's version_retention_period. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -182,42 +328,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -419,6 +529,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_instanceiammembers.yaml b/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_instanceiammembers.yaml index 7185e3179..eb784957c 100644 --- a/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_instanceiammembers.yaml +++ b/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_instanceiammembers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: instanceiammembers.spanner.gcp.kubedb.com spec: group: spanner.gcp.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -75,9 +75,6 @@ spec: type: string title: type: string - required: - - expression - - title type: object type: array instance: @@ -162,21 +159,61 @@ spec: role: type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + condition: + items: + properties: + description: + type: string + expression: + type: string + title: + type: string + type: object + type: array + member: + type: string + project: + type: string + role: + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -215,42 +252,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -349,10 +350,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: member is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.member) - - message: role is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.role) + - message: spec.forProvider.member is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.member) + || (has(self.initProvider) && has(self.initProvider.member))' + - message: spec.forProvider.role is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.role) + || (has(self.initProvider) && has(self.initProvider.role))' status: description: InstanceIAMMemberStatus defines the observed state of InstanceIAMMember. properties: @@ -415,6 +420,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_instances.yaml b/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_instances.yaml index 3cc1a6216..38453be3f 100644 --- a/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_instances.yaml +++ b/charts/kubedb-provider-gcp/crds/spanner.gcp.kubedb.com_instances.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: instances.spanner.gcp.kubedb.com spec: group: spanner.gcp.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -117,21 +117,94 @@ spec: If it is not provided, the provider project is used. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + config: + description: The name of the instance's configuration (similar + but not quite the same as a region) which defines the geographic + placement and replication of your databases in this instance. + It determines where your data is stored. Values are typically + of the form regional-europe-west1 , us-central etc. In order + to obtain a valid list please consult the Configuration section + of the docs. The name of the instance's configuration (similar + but not quite the same as a region) which defines the geographic + placement and replication of your databases in this instance. + It determines where your data is stored. Values are typically + of the form 'regional-europe-west1' , 'us-central' etc. In order + to obtain a valid list please consult the [Configuration section + of the docs](https://cloud.google.com/spanner/docs/instances). + type: string + displayName: + description: The descriptive name for this instance as it appears + in UIs. Must be unique per project and between 4 and 30 characters + in length. The descriptive name for this instance as it appears + in UIs. Must be unique per project and between 4 and 30 characters + in length. + type: string + forceDestroy: + description: When deleting a spanner instance, this boolean option + will delete all backups of this instance. This must be set to + true if you created a backup manually in the console. When deleting + a spanner instance, this boolean option will delete all backups + of this instance. This must be set to true if you created a + backup manually in the console. + type: boolean + labels: + additionalProperties: + type: string + description: 'An object containing a list of "key": value pairs. + Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + An object containing a list of "key": value pairs. Example: + { "name": "wrench", "mass": "1.3kg", "count": "3" }.' + type: object + numNodes: + description: The number of nodes allocated to this instance. The + number of nodes allocated to this instance. + type: number + processingUnits: + description: The number of processing units allocated to this + instance. The number of processing units allocated to this instance. + type: number + project: + description: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -170,42 +243,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -304,10 +341,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: config is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.config) - - message: displayName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.displayName) + - message: spec.forProvider.config is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.config) + || (has(self.initProvider) && has(self.initProvider.config))' + - message: spec.forProvider.displayName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.displayName) + || (has(self.initProvider) && has(self.initProvider.displayName))' status: description: InstanceStatus defines the observed state of Instance. properties: @@ -404,6 +445,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_databaseinstances.yaml b/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_databaseinstances.yaml index 7ece59d0b..6cfa32474 100644 --- a/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_databaseinstances.yaml +++ b/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_databaseinstances.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: databaseinstances.sql.gcp.kubedb.com spec: group: sql.gcp.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -105,8 +105,6 @@ spec: The name of the instance from which the point in time should be restored. type: string - required: - - sourceInstanceName type: object type: array databaseVersion: @@ -271,8 +269,6 @@ spec: description: The full project ID of the source instance.` The full project ID of the source instance. type: string - required: - - backupRunId type: object type: array rootPasswordSecretRef: @@ -314,8 +310,6 @@ spec: Server. Domain name of the Active Directory for SQL Server (e.g., mydomain.com). type: string - required: - - domain type: object type: array advancedMachineFeatures: @@ -367,8 +361,6 @@ spec: 'retainedBackups' represents. Defaults to COUNT type: string - required: - - retainedBackups type: object type: array binaryLogEnabled: @@ -427,9 +419,6 @@ spec: set even if other two attributes are not for the whitelist to become active. Value of the flag. type: string - required: - - name - - value type: object type: array deletionProtectionEnabled: @@ -467,10 +456,6 @@ spec: on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00' type: string - required: - - endDate - - startDate - - time type: object type: array diskAutoresize: @@ -569,8 +554,6 @@ spec: be set even if other two attributes are not for the whitelist to become active. type: string - required: - - value type: object type: array enablePrivatePathForGoogleCloudServices: @@ -604,6 +587,710 @@ spec: must be configured. This setting can be updated, but it cannot be removed after it is set. type: string + privateNetworkRef: + description: Reference to a Network in compute to + populate privateNetwork. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether + resolution of this reference is required. + The default is 'Required', which means the + reconcile will fail if the reference cannot + be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference + should be resolved. The default is 'IfNotPresent', + which will attempt to resolve the reference + only when the corresponding field is not + present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + privateNetworkSelector: + description: Selector for a Network in compute to + populate privateNetwork. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object + with the same controller reference as the selecting + object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with + matching labels is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether + resolution of this reference is required. + The default is 'Required', which means the + reconcile will fail if the reference cannot + be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference + should be resolved. The default is 'IfNotPresent', + which will attempt to resolve the reference + only when the corresponding field is not + present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + requireSsl: + description: Whether SSL connections over IP are enforced + or not. + type: boolean + type: object + type: array + locationPreference: + items: + properties: + followGaeApplication: + description: A GAE application whose zone to remain + in. Must be in the same region as this instance. + A Google App Engine application whose zone to remain + in. Must be in the same region as this instance. + type: string + secondaryZone: + description: The preferred Compute Engine zone for + the secondary/failover. The preferred Compute Engine + zone for the secondary/failover + type: string + zone: + description: The preferred compute engine zone. The + preferred compute engine zone. + type: string + type: object + type: array + maintenanceWindow: + description: Declares a one-hour maintenance window when + an Instance can automatically restart to apply updates. + The maintenance window is specified in UTC time. + items: + properties: + day: + description: Day of week (1-7), starting on Monday + Day of week (1-7), starting on Monday + type: number + hour: + description: Hour of day (0-23), ignored if day not + set Hour of day (0-23), ignored if day not set + type: number + updateTrack: + description: Receive updates earlier (canary) or later + (stable) Receive updates earlier (canary) or later + (stable) + type: string + type: object + type: array + passwordValidationPolicy: + items: + properties: + complexity: + description: Checks if the password is a combination + of lowercase, uppercase, numeric, and non-alphanumeric + characters. Password complexity. + type: string + disallowUsernameSubstring: + description: Prevents the use of the username in the + password. Disallow username as a part of the password. + type: boolean + enablePasswordPolicy: + description: Enables or disable the password validation + policy. Whether the password policy is enabled or + not. + type: boolean + minLength: + description: Specifies the minimum number of characters + that the password must have. Minimum number of characters + allowed. + type: number + passwordChangeInterval: + description: Specifies the minimum duration after + which you can change the password. Minimum interval + after which the password can be changed. This flag + is only supported for PostgresSQL. + type: string + reuseInterval: + description: Specifies the number of previous passwords + that you can't reuse. Number of previous passwords + that cannot be reused. + type: number + type: object + type: array + pricingPlan: + description: Pricing plan for this instance, can only be + PER_USE. Pricing plan for this instance, can only be PER_USE. + type: string + sqlServerAuditConfig: + items: + properties: + bucket: + description: The name of the destination bucket (e.g., + gs://mybucket). The name of the destination bucket + (e.g., gs://mybucket). + type: string + retentionInterval: + description: 'How long to keep generated audit files. + A duration in seconds with up to nine fractional + digits, terminated by ''s''. Example: "3.5s". How + long to keep generated audit files. A duration in + seconds with up to nine fractional digits, terminated + by ''s''. Example: "3.5s"..' + type: string + uploadInterval: + description: 'How often to upload generated audit + files. A duration in seconds with up to nine fractional + digits, terminated by ''s''. Example: "3.5s". How + often to upload generated audit files. A duration + in seconds with up to nine fractional digits, terminated + by ''s''. Example: "3.5s".' + type: string + type: object + type: array + tier: + description: The machine type to use. See tiers for more + details and supported versions. Postgres supports only + shared-core machine types, and custom machine types such + as db-custom-2-13312. See the Custom Machine Type Documentation + to learn about specifying custom machine types. The machine + type to use. See tiers for more details and supported + versions. Postgres supports only shared-core machine types, + and custom machine types such as db-custom-2-13312. See + the Custom Machine Type Documentation to learn about specifying + custom machine types. + type: string + timeZone: + description: The time_zone to be used by the database engine + (supported only for SQL Server), in SQL Server timezone + format. The time_zone to be used by the database engine + (supported only for SQL Server), in SQL Server timezone + format. + type: string + userLabels: + additionalProperties: + type: string + description: A set of key/value user label pairs to assign + to the instance. A set of key/value user label pairs to + assign to the instance. + type: object + type: object + type: array + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + clone: + description: The context needed to create this instance as a clone + of another instance. The configuration is detailed below. Configuration + for creating a new instance as a clone of another instance. + items: + properties: + allocatedIpRange: + description: 'The name of the allocated ip range for the + private ip CloudSQL instance. For example: "google-managed-services-default". + If set, the cloned instance ip will be created in the + allocated range. The range name must comply with RFC 1035. + Specifically, the name must be 1-63 characters long and + match the regular expression a-z?. The name of the allocated + ip range for the private ip CloudSQL instance. For example: + "google-managed-services-default". If set, the cloned + instance ip will be created in the allocated range. The + range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). + Specifically, the name must be 1-63 characters long and + match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?.' + type: string + databaseNames: + description: (SQL Server only, use with point_in_time) Clone + only the specified databases from the source instance. + Clone all databases if empty. (SQL Server only, use with + point_in_time) clone only the specified databases from + the source instance. Clone all databases if empty. + items: + type: string + type: array + pointInTime: + description: The timestamp of the point in time that should + be restored. The timestamp of the point in time that should + be restored. + type: string + sourceInstanceName: + description: Name of the source instance which will be cloned. + The name of the instance from which the point in time + should be restored. + type: string + type: object + type: array + databaseVersion: + description: The MySQL, PostgreSQL or SQL Server version to use. + Supported values include MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6,POSTGRES_10, + POSTGRES_11, POSTGRES_12, POSTGRES_13, POSTGRES_14, SQLSERVER_2017_STANDARD, + SQLSERVER_2017_ENTERPRISE, SQLSERVER_2017_EXPRESS, SQLSERVER_2017_WEB. + SQLSERVER_2019_STANDARD, SQLSERVER_2019_ENTERPRISE, SQLSERVER_2019_EXPRESS, + SQLSERVER_2019_WEB. Database Version Policies includes an up-to-date + reference of supported versions. The MySQL, PostgreSQL or SQL + Server (beta) version to use. Supported values include MYSQL_5_6, + MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, + POSTGRES_12, POSTGRES_13, POSTGRES_14, SQLSERVER_2017_STANDARD, + SQLSERVER_2017_ENTERPRISE, SQLSERVER_2017_EXPRESS, SQLSERVER_2017_WEB. + Database Version Policies includes an up-to-date reference of + supported versions. + type: string + deletionProtection: + description: Defaults to true. Defaults to true. + type: boolean + encryptionKeyName: + description: The full path to the encryption key used for the + CMEK disk encryption. The provided key must be in the same region + as the SQL instance. In order to use this feature, a special + kind of service account must be created and granted permission + on this key. This step can currently only be done manually, + please see this step. That service account needs the Cloud KMS + > Cloud KMS CryptoKey Encrypter/Decrypter role on your key - + please see this step. + type: string + maintenanceVersion: + description: The current software version on the instance. This + attribute can not be set during creation. Refer to available_maintenance_versions + attribute to see what maintenance_version are available for + upgrade. When this attribute gets updated, it will cause an + instance restart. Setting a maintenance_version value that is + older than the current one on the instance will be ignored. + Maintenance version. + type: string + masterInstanceName: + description: The name of the existing instance that will act as + the master in the replication setup. Note, this requires the + master to have binary_log_enabled set, as well as existing backups. + The name of the instance that will act as the master in the + replication setup. Note, this requires the master to have binary_log_enabled + set, as well as existing backups. + type: string + project: + description: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. The ID + of the project in which the resource belongs. If it is not provided, + the provider project is used. + type: string + region: + description: The region the instance will sit in. If a region + is not provided in the resource definition, the provider region + will be used instead. The region the instance will sit in. Note, + Cloud SQL is not available in all regions. A valid region must + be provided to use this resource. If a region is not provided + in the resource definition, the provider region will be used + instead, but this will be an apply-time error for instances + if the provider region is not supported with Cloud SQL. If you + choose not to provide the region argument for this resource, + make sure you understand this. + type: string + replicaConfiguration: + description: The configuration for replication. The configuration + is detailed below. Valid only for MySQL instances. The configuration + for replication. + items: + properties: + caCertificate: + description: PEM representation of the trusted CA's x509 + certificate. PEM representation of the trusted CA's x509 + certificate. + type: string + clientCertificate: + description: PEM representation of the replica's x509 certificate. + PEM representation of the replica's x509 certificate. + type: string + clientKey: + description: PEM representation of the replica's private + key. The corresponding public key in encoded in the client_certificate. + PEM representation of the replica's private key. The corresponding + public key in encoded in the client_certificate. + type: string + connectRetryInterval: + description: The number of seconds between connect retries. + MySQL's default is 60 seconds. The number of seconds between + connect retries. MySQL's default is 60 seconds. + type: number + dumpFilePath: + description: Path to a SQL file in GCS from which replica + instances are created. Format is gs://bucket/filename. + Path to a SQL file in Google Cloud Storage from which + replica instances are created. Format is gs://bucket/filename. + type: string + failoverTarget: + description: Specifies if the replica is the failover target. + If the field is set to true the replica will be designated + as a failover replica. If the master instance fails, the + replica instance will be promoted as the new master instance. + Specifies if the replica is the failover target. If the + field is set to true the replica will be designated as + a failover replica. If the master instance fails, the + replica instance will be promoted as the new master instance. + type: boolean + masterHeartbeatPeriod: + description: Time in ms between replication heartbeats. + Time in ms between replication heartbeats. + type: number + sslCipher: + description: Permissible ciphers for use in SSL encryption. + type: string + username: + description: Username for replication connection. Username + for replication connection. + type: string + verifyServerCertificate: + description: True if the master's common name value is checked + during the SSL handshake. True if the master's common + name value is checked during the SSL handshake. + type: boolean + type: object + type: array + restoreBackupContext: + description: The context needed to restore the database to a backup + run. The configuration is detailed below. Adding or modifying + this block during resource creation/update will trigger the + restore action after the resource is created/updated. + items: + properties: + backupRunId: + description: The ID of the backup run to restore from. The + ID of the backup run to restore from. + type: number + instanceId: + description: The ID of the instance that the backup was + taken from. If left empty, this instance's ID will be + used. The ID of the instance that the backup was taken + from. + type: string + project: + description: The full project ID of the source instance.` + The full project ID of the source instance. + type: string + type: object + type: array + settings: + description: The settings to use for the database. The configuration + is detailed below. Required if clone is not set. The settings + to use for the database. The configuration is detailed below. + items: + properties: + activationPolicy: + description: This specifies when the instance should be + active. Can be either ALWAYS, NEVER or ON_DEMAND. This + specifies when the instance should be active. Can be either + ALWAYS, NEVER or ON_DEMAND. + type: string + activeDirectoryConfig: + items: + properties: + domain: + description: The domain name for the active directory + (e.g., mydomain.com). Can only be used with SQL + Server. Domain name of the Active Directory for + SQL Server (e.g., mydomain.com). + type: string + type: object + type: array + advancedMachineFeatures: + items: + properties: + threadsPerCore: + description: The number of threads per core. The value + of this flag can be 1 or 2. To disable SMT, set + this flag to 1. Only available in Cloud SQL for + SQL Server instances. See smt for more details. + The number of threads per physical core. Can be + 1 or 2. + type: number + type: object + type: array + availabilityType: + description: The availability type of the Cloud SQL instance, + high availability (REGIONAL) or single zone (ZONAL).' + For all instances, ensure that settings.backup_configuration.enabled + is set to true. For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled + is set to true. For Postgres and SQL Server instances, + ensure that settings.backup_configuration.point_in_time_recovery_enabled + is set to true. Defaults to ZONAL. The availability type + of the Cloud SQL instance, high availability (REGIONAL) + or single zone (ZONAL). For all instances, ensure that + settings.backup_configuration.enabled is set to true. + For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled + is set to true. For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled + is set to true. Defaults to ZONAL. + type: string + backupConfiguration: + items: + properties: + backupRetentionSettings: + description: Backup retention settings. The configuration + is detailed below. + items: + properties: + retainedBackups: + description: Depending on the value of retention_unit, + this is used to determine if a backup needs + to be deleted. If retention_unit is 'COUNT', + we will retain this many backups. Number of + backups to retain. + type: number + retentionUnit: + description: The unit that 'retained_backups' + represents. Defaults to COUNT. The unit that + 'retainedBackups' represents. Defaults to + COUNT + type: string + type: object + type: array + binaryLogEnabled: + description: True if binary logging is enabled. Can + only be used with MySQL. True if binary logging + is enabled. If settings.backup_configuration.enabled + is false, this must be as well. Can only be used + with MySQL. + type: boolean + enabled: + description: True if backup configuration is enabled. + True if backup configuration is enabled. + type: boolean + location: + description: The region where the backup will be stored + Location of the backup configuration. + type: string + pointInTimeRecoveryEnabled: + description: True if Point-in-time recovery is enabled. + Will restart database if enabled after instance + creation. Valid only for PostgreSQL and SQL Server + instances. True if Point-in-time recovery is enabled. + type: boolean + startTime: + description: HH:MM format time indicating when backup + configuration starts. HH:MM format time indicating + when backup configuration starts. + type: string + transactionLogRetentionDays: + description: The number of days of transaction logs + we retain for point in time restore, from 1-7. The + number of days of transaction logs we retain for + point in time restore, from 1-7. + type: number + type: object + type: array + collation: + description: The name of server instance collation. The + name of server instance collation. + type: string + connectorEnforcement: + description: Specifies if connections must use Cloud SQL + connectors. Specifies if connections must use Cloud SQL + connectors. + type: string + databaseFlags: + items: + properties: + name: + description: A name for this whitelist entry. Name + of the flag. + type: string + value: + description: A CIDR notation IPv4 or IPv6 address + that is allowed to access this instance. Must be + set even if other two attributes are not for the + whitelist to become active. Value of the flag. + type: string + type: object + type: array + deletionProtectionEnabled: + description: . Configuration to protect against accidental + instance deletion. + type: boolean + denyMaintenancePeriod: + items: + properties: + endDate: + description: '"deny maintenance period" end date. + If the year of the end date is empty, the year of + the start date also must be empty. In this case, + it means the no maintenance interval recurs every + year. The date is in format yyyy-mm-dd i.e., 2020-11-01, + or mm-dd, i.e., 11-01 End date before which maintenance + will not take place. The date is in format yyyy-mm-dd + i.e., 2020-11-01, or mm-dd, i.e., 11-01' + type: string + startDate: + description: '"deny maintenance period" start date. + If the year of the start date is empty, the year + of the end date also must be empty. In this case, + it means the deny maintenance period recurs every + year. The date is in format yyyy-mm-dd i.e., 2020-11-01, + or mm-dd, i.e., 11-01 Start date after which maintenance + will not take place. The date is in format yyyy-mm-dd + i.e., 2020-11-01, or mm-dd, i.e., 11-01' + type: string + time: + description: 'Time in UTC when the "deny maintenance + period" starts on startDate and ends on endDate. + The time is in format: HH:mm:SS, i.e., 00:00:00 + Time in UTC when the "deny maintenance period" starts + on start_date and ends on end_date. The time is + in format: HH:mm:SS, i.e., 00:00:00' + type: string + type: object + type: array + diskAutoresize: + description: Enables auto-resizing of the storage size. + Defaults to true. Enables auto-resizing of the storage + size. Defaults to true. + type: boolean + diskAutoresizeLimit: + description: The maximum size to which storage capacity + can be automatically increased. The default value is 0, + which specifies that there is no limit. The maximum size, + in GB, to which storage capacity can be automatically + increased. The default value is 0, which specifies that + there is no limit. + type: number + diskSize: + description: The size of data disk, in GB. Size of a running + instance cannot be reduced but can be increased. The minimum + value is 10GB. The size of data disk, in GB. Size of a + running instance cannot be reduced but can be increased. + The minimum value is 10GB. + type: number + diskType: + description: 'The type of data disk: PD_SSD or PD_HDD. Defaults + to PD_SSD. The type of data disk: PD_SSD or PD_HDD. Defaults + to PD_SSD.' + type: string + insightsConfig: + description: Configuration of Query Insights. + items: + properties: + queryInsightsEnabled: + description: True if Query Insights feature is enabled. + True if Query Insights feature is enabled. + type: boolean + queryPlansPerMinute: + description: Number of query execution plans captured + by Insights per minute for all queries combined. + Between 0 and 20. Default to 5. Number of query + execution plans captured by Insights per minute + for all queries combined. Between 0 and 20. Default + to 5. + type: number + queryStringLength: + description: Maximum query length stored in bytes. + Between 256 and 4500. Default to 1024. Higher query + lengths are more useful for analytical queries, + but they also require more memory. Changing the + query length requires you to restart the instance. + You can still add tags to queries that exceed the + length limit. Maximum query length stored in bytes. + Between 256 and 4500. Default to 1024. + type: number + recordApplicationTags: + description: True if Query Insights will record application + tags from query when enabled. True if Query Insights + will record application tags from query when enabled. + type: boolean + recordClientAddress: + description: True if Query Insights will record client + address when enabled. True if Query Insights will + record client address when enabled. + type: boolean + type: object + type: array + ipConfiguration: + items: + properties: + allocatedIpRange: + description: 'The name of the allocated ip range for + the private ip CloudSQL instance. For example: "google-managed-services-default". + If set, the instance ip will be created in the allocated + range. The range name must comply with RFC 1035. + Specifically, the name must be 1-63 characters long + and match the regular expression a-z?. The name + of the allocated ip range for the private ip CloudSQL + instance. For example: "google-managed-services-default". + If set, the instance ip will be created in the allocated + range. The range name must comply with RFC 1035. + Specifically, the name must be 1-63 characters long + and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?.' + type: string + authorizedNetworks: + items: + properties: + expirationTime: + description: The RFC 3339 formatted date time + string indicating when this whitelist expires. + type: string + name: + description: A name for this whitelist entry. + type: string + value: + description: A CIDR notation IPv4 or IPv6 address + that is allowed to access this instance. Must + be set even if other two attributes are not + for the whitelist to become active. + type: string + type: object + type: array + enablePrivatePathForGoogleCloudServices: + description: Whether Google Cloud services such as + BigQuery are allowed to access data in this Cloud + SQL instance over a private IP connection. SQLSERVER + database type is not supported. Whether Google Cloud + services such as BigQuery are allowed to access + data in this Cloud SQL instance over a private IP + connection. SQLSERVER database type is not supported. + type: boolean + ipv4Enabled: + description: Whether this Cloud SQL instance should + be assigned a public IPV4 address. At least ipv4_enabled + must be enabled or a private_network must be configured. + Whether this Cloud SQL instance should be assigned + a public IPV4 address. At least ipv4_enabled must + be enabled or a private_network must be configured. + type: boolean requireSsl: description: Whether SSL connections over IP are enforced or not. @@ -684,8 +1371,6 @@ spec: that you can't reuse. Number of previous passwords that cannot be reused. type: number - required: - - enablePasswordPolicy type: object type: array pricingPlan: @@ -744,26 +1429,34 @@ spec: to the instance. A set of key/value user label pairs to assign to the instance. type: object - required: - - tier type: object type: array type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -802,42 +1495,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -936,8 +1593,10 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: databaseVersion is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.databaseVersion) + - message: spec.forProvider.databaseVersion is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.databaseVersion) + || (has(self.initProvider) && has(self.initProvider.databaseVersion))' status: description: DatabaseInstanceStatus defines the observed state of DatabaseInstance. properties: @@ -1688,6 +2347,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_databases.yaml b/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_databases.yaml index cbd1d3a24..2d0f21d90 100644 --- a/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_databases.yaml +++ b/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_databases.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: databases.sql.gcp.kubedb.com spec: group: sql.gcp.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -182,21 +182,81 @@ spec: If it is not provided, the provider project is used. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + charset: + description: The charset value. See MySQL's Supported Character + Sets and Collations and Postgres' Character Set Support for + more details and supported values. Postgres databases only support + a value of UTF8 at creation time. The charset value. See MySQL's + [Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html) + and Postgres' [Character Set Support](https://www.postgresql.org/docs/9.6/static/multibyte.html) + for more details and supported values. Postgres databases only + support a value of 'UTF8' at creation time. + type: string + collation: + description: The collation value. See MySQL's Supported Character + Sets and Collations and Postgres' Collation Support for more + details and supported values. Postgres databases only support + a value of en_US.UTF8 at creation time. The collation value. + See MySQL's [Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html) + and Postgres' [Collation Support](https://www.postgresql.org/docs/9.6/static/collation.html) + for more details and supported values. Postgres databases only + support a value of 'en_US.UTF8' at creation time. + type: string + deletionPolicy: + description: 'The deletion policy for the database. Setting ABANDON + allows the resource to be abandoned rather than deleted. This + is useful for Postgres, where databases cannot be deleted from + the API if there are users other than cloudsqlsuperuser with + access. Possible values are: "ABANDON", "DELETE". Defaults to + "DELETE". The deletion policy for the database. Setting ABANDON + allows the resource to be abandoned rather than deleted. This + is useful for Postgres, where databases cannot be deleted from + the API if there are users other than cloudsqlsuperuser with + access. Possible values are: "ABANDON", "DELETE". Defaults to + "DELETE".' + type: string + project: + description: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -235,42 +295,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -455,6 +479,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_sourcerepresentationinstances.yaml b/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_sourcerepresentationinstances.yaml index 916ee9125..0b08fb47d 100644 --- a/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_sourcerepresentationinstances.yaml +++ b/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_sourcerepresentationinstances.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: sourcerepresentationinstances.sql.gcp.kubedb.com spec: group: sql.gcp.kubedb.com @@ -58,7 +58,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -147,21 +147,103 @@ spec: The replication user account on the external server. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + caCertificate: + description: The CA certificate on the external server. Include + only if SSL/TLS is used on the external server. The CA certificate + on the external server. Include only if SSL/TLS is used on the + external server. + type: string + clientCertificate: + description: The client certificate on the external server. Required + only for server-client authentication. Include only if SSL/TLS + is used on the external server. The client certificate on the + external server. Required only for server-client authentication. + Include only if SSL/TLS is used on the external server. + type: string + clientKey: + description: The private key file for the client certificate on + the external server. Required only for server-client authentication. + Include only if SSL/TLS is used on the external server. The + private key file for the client certificate on the external + server. Required only for server-client authentication. Include + only if SSL/TLS is used on the external server. + type: string + databaseVersion: + description: 'The MySQL version running on your source database + server. Possible values are: MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, + POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, + POSTGRES_14. The MySQL version running on your source database + server. Possible values: ["MYSQL_5_6", "MYSQL_5_7", "MYSQL_8_0", + "POSTGRES_9_6", "POSTGRES_10", "POSTGRES_11", "POSTGRES_12", + "POSTGRES_13", "POSTGRES_14"]' + type: string + dumpFilePath: + description: A file in the bucket that contains the data from + the external server. A file in the bucket that contains the + data from the external server. + type: string + host: + description: The externally accessible IPv4 address for the source + database server. The externally accessible IPv4 address for + the source database server. + type: string + port: + description: The externally accessible port for the source database + server. Defaults to 3306. The externally accessible port for + the source database server. Defaults to 3306. + type: number + project: + description: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + type: string + region: + description: The Region in which the created instance should reside. + If it is not provided, the provider region is used. The Region + in which the created instance should reside. If it is not provided, + the provider region is used. + type: string + username: + description: The replication user account on the external server. + The replication user account on the external server. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -200,42 +282,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -334,10 +380,14 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: databaseVersion is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.databaseVersion) - - message: host is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.host) + - message: spec.forProvider.databaseVersion is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.databaseVersion) + || (has(self.initProvider) && has(self.initProvider.databaseVersion))' + - message: spec.forProvider.host is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.host) + || (has(self.initProvider) && has(self.initProvider.host))' status: description: SourceRepresentationInstanceStatus defines the observed state of SourceRepresentationInstance. @@ -440,6 +490,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_sslcerts.yaml b/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_sslcerts.yaml index 45ae9f315..c4ff3ab8a 100644 --- a/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_sslcerts.yaml +++ b/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_sslcerts.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: sslcerts.sql.gcp.kubedb.com spec: group: sql.gcp.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -159,21 +159,58 @@ spec: the provider project is used. type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + commonName: + description: The common name to be used in the certificate to + identify the client. Constrained to [a-zA-Z.-_ ]+. Changing + this forces a new resource to be created. The common name to + be used in the certificate to identify the client. Constrained + to [a-zA-Z.-_ ]+. Changing this forces a new resource to be + created. + type: string + project: + description: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. The ID + of the project in which the resource belongs. If it is not provided, + the provider project is used. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -212,42 +249,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -346,8 +347,10 @@ spec: - forProvider type: object x-kubernetes-validations: - - message: commonName is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.commonName) + - message: spec.forProvider.commonName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.commonName) + || (has(self.initProvider) && has(self.initProvider.commonName))' status: description: SSLCertStatus defines the observed state of SSLCert. properties: @@ -436,6 +439,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec diff --git a/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_users.yaml b/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_users.yaml index eb447642f..aeff81aa0 100644 --- a/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_users.yaml +++ b/charts/kubedb-provider-gcp/crds/sql.gcp.kubedb.com_users.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.13.0 name: users.sql.gcp.kubedb.com spec: group: sql.gcp.kubedb.com @@ -56,7 +56,7 @@ spec: description: 'DeletionPolicy specifies what will happen to the underlying external when this managed resource is deleted - either "Delete" or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, + in favor of the ManagementPolicies field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' @@ -230,21 +230,106 @@ spec: type. Flags include "BUILT_IN", "CLOUD_IAM_USER", or "CLOUD_IAM_SERVICE_ACCOUNT". type: string type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + deletionPolicy: + description: 'The deletion policy for the user. Setting ABANDON + allows the resource to be abandoned rather than deleted. This + is useful for Postgres, where users cannot be deleted from the + API if they have been granted SQL roles. The deletion policy + for the user. Setting ABANDON allows the resource to be abandoned + rather than deleted. This is useful for Postgres, where users + cannot be deleted from the API if they have been granted SQL + roles. Possible values are: "ABANDON".' + type: string + host: + description: The host the user can connect from. This is only + supported for BUILT_IN users in MySQL instances. Don't set this + field for PostgreSQL and SQL Server instances. Can be an IP + address. Changing this forces a new resource to be created. + The host the user can connect from. This is only supported for + MySQL instances. Don't set this field for PostgreSQL instances. + Can be an IP address. Changing this forces a new resource to + be created. + type: string + passwordPolicy: + items: + properties: + allowedFailedAttempts: + description: Number of failed attempts allowed before the + user get locked. Number of failed attempts allowed before + the user get locked. + type: number + enableFailedAttemptsCheck: + description: If true, the check that will lock user after + too many failed login attempts will be enabled. If true, + the check that will lock user after too many failed login + attempts will be enabled. + type: boolean + enablePasswordVerification: + description: If true, the user must specify the current + password before changing the password. This flag is supported + only for MySQL. If true, the user must specify the current + password before changing the password. This flag is supported + only for MySQL. + type: boolean + passwordExpirationDuration: + description: Password expiration duration with one week + grace period. Password expiration duration with one week + grace period. + type: string + type: object + type: array + project: + description: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. The ID + of the project in which the resource belongs. If it is not provided, + the provider project is used. + type: string + type: + description: The user type. It determines the method to authenticate + the user during login. The default is the database's built-in + user type. Flags include "BUILT_IN", "CLOUD_IAM_USER", or "CLOUD_IAM_SERVICE_ACCOUNT". + The user type. It determines the method to authenticate the + user during login. The default is the database's built-in user + type. Flags include "BUILT_IN", "CLOUD_IAM_USER", or "CLOUD_IAM_SERVICE_ACCOUNT". + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array providerConfigRef: default: name: default @@ -283,42 +368,6 @@ spec: required: - name type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object publishConnectionDetailsTo: description: PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret @@ -548,6 +597,9 @@ spec: - type type: object type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map type: object required: - spec