diff --git a/crd-catalog/RedisLabs/redis-enterprise-k8s-docs/app.redislabs.com/v1/redisenterpriseclusters.yaml b/crd-catalog/RedisLabs/redis-enterprise-k8s-docs/app.redislabs.com/v1/redisenterpriseclusters.yaml index 087de2733..da8f65619 100644 --- a/crd-catalog/RedisLabs/redis-enterprise-k8s-docs/app.redislabs.com/v1/redisenterpriseclusters.yaml +++ b/crd-catalog/RedisLabs/redis-enterprise-k8s-docs/app.redislabs.com/v1/redisenterpriseclusters.yaml @@ -3163,6 +3163,12 @@ spec: type: object type: array type: object + redisEnterpriseIPFamily: + description: Reserved, future use, only for use if instructed by Redis. IPFamily dictates what IP family to choose for pods' internal and external communication. + enum: + - IPv4 + - IPv6 + type: string redisEnterpriseImageSpec: description: Specification for Redis Enterprise container image properties: @@ -7353,6 +7359,8 @@ spec: description: The most recent time at which the status being indicated is known by the responder to have been correct. type: string type: object + redisEnterpriseIPFamily: + type: string specStatus: type: string state: diff --git a/crd-catalog/RedisLabs/redis-enterprise-k8s-docs/app.redislabs.com/v1alpha1/redisenterpriseclusters.yaml b/crd-catalog/RedisLabs/redis-enterprise-k8s-docs/app.redislabs.com/v1alpha1/redisenterpriseclusters.yaml index ddcaa0d31..c0140ebb6 100644 --- a/crd-catalog/RedisLabs/redis-enterprise-k8s-docs/app.redislabs.com/v1alpha1/redisenterpriseclusters.yaml +++ b/crd-catalog/RedisLabs/redis-enterprise-k8s-docs/app.redislabs.com/v1alpha1/redisenterpriseclusters.yaml @@ -3074,6 +3074,11 @@ spec: type: object type: array type: object + redisEnterpriseIPFamily: + enum: + - IPv4 + - IPv6 + type: string redisEnterpriseImageSpec: properties: digestHash: @@ -7189,6 +7194,8 @@ spec: thisUpdate: type: string type: object + redisEnterpriseIPFamily: + type: string specStatus: type: string state: diff --git a/crd-catalog/RedisLabs/redis-enterprise-k8s-docs/app.redislabs.com/v1alpha1/redisenterprisedatabases.yaml b/crd-catalog/RedisLabs/redis-enterprise-k8s-docs/app.redislabs.com/v1alpha1/redisenterprisedatabases.yaml index 4365ad046..9aed96e6c 100644 --- a/crd-catalog/RedisLabs/redis-enterprise-k8s-docs/app.redislabs.com/v1alpha1/redisenterprisedatabases.yaml +++ b/crd-catalog/RedisLabs/redis-enterprise-k8s-docs/app.redislabs.com/v1alpha1/redisenterprisedatabases.yaml @@ -1,6 +1,8 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: + labels: + app: redis-enterprise name: redisenterprisedatabases.app.redislabs.com spec: group: app.redislabs.com diff --git a/crd-catalog/apache/apisix-ingress-controller/apisix.apache.org/v2/apisixclusterconfigs.yaml b/crd-catalog/apache/apisix-ingress-controller/apisix.apache.org/v2/apisixclusterconfigs.yaml index 329616d7d..a3b229c86 100644 --- a/crd-catalog/apache/apisix-ingress-controller/apisix.apache.org/v2/apisixclusterconfigs.yaml +++ b/crd-catalog/apache/apisix-ingress-controller/apisix.apache.org/v2/apisixclusterconfigs.yaml @@ -51,6 +51,30 @@ spec: type: object type: object type: object + status: + properties: + conditions: + items: + properties: + lastTransitionTime: + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + type: object + required: + - type + - status + - lastTransitionTime + type: array + observedGeneration: + type: integer + type: object type: object served: true storage: true diff --git a/crd-catalog/apache/apisix-ingress-controller/apisix.apache.org/v2/apisixconsumers.yaml b/crd-catalog/apache/apisix-ingress-controller/apisix.apache.org/v2/apisixconsumers.yaml index 195094de8..ee56cdc1b 100644 --- a/crd-catalog/apache/apisix-ingress-controller/apisix.apache.org/v2/apisixconsumers.yaml +++ b/crd-catalog/apache/apisix-ingress-controller/apisix.apache.org/v2/apisixconsumers.yaml @@ -180,6 +180,8 @@ spec: name: minLength: 1 type: string + required: + - name type: object value: properties: @@ -220,6 +222,30 @@ spec: required: - authParameter type: object + status: + properties: + conditions: + items: + properties: + lastTransitionTime: + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + type: object + required: + - type + - status + - lastTransitionTime + type: array + observedGeneration: + type: integer + type: object type: object served: true storage: true diff --git a/crd-catalog/apache/flink-kubernetes-operator/flink.apache.org/v1beta1/flinkdeployments.yaml b/crd-catalog/apache/flink-kubernetes-operator/flink.apache.org/v1beta1/flinkdeployments.yaml index fae608ff6..eb2818f83 100644 --- a/crd-catalog/apache/flink-kubernetes-operator/flink.apache.org/v1beta1/flinkdeployments.yaml +++ b/crd-catalog/apache/flink-kubernetes-operator/flink.apache.org/v1beta1/flinkdeployments.yaml @@ -55,8 +55,23 @@ spec: type: object className: type: string + labels: + additionalProperties: + type: string + type: object template: type: string + tls: + items: + properties: + hosts: + items: + type: string + type: array + secretName: + type: string + type: object + type: array type: object job: properties: @@ -76,6 +91,8 @@ spec: type: string parallelism: type: integer + savepointRedeployNonce: + type: integer savepointTriggerNonce: type: integer state: diff --git a/crd-catalog/apache/flink-kubernetes-operator/flink.apache.org/v1beta1/flinksessionjobs.yaml b/crd-catalog/apache/flink-kubernetes-operator/flink.apache.org/v1beta1/flinksessionjobs.yaml index 46437bea8..d5e4e14b5 100644 --- a/crd-catalog/apache/flink-kubernetes-operator/flink.apache.org/v1beta1/flinksessionjobs.yaml +++ b/crd-catalog/apache/flink-kubernetes-operator/flink.apache.org/v1beta1/flinksessionjobs.yaml @@ -53,6 +53,8 @@ spec: type: string parallelism: type: integer + savepointRedeployNonce: + type: integer savepointTriggerNonce: type: integer state: diff --git a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusterdefinitions.yaml b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusterdefinitions.yaml index dcb6c56bc..d5f75934d 100644 --- a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusterdefinitions.yaml +++ b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusterdefinitions.yaml @@ -4721,6 +4721,131 @@ spec: - containers type: object x-kubernetes-preserve-unknown-fields: true + postStartSpec: + description: postStartSpec defines the command to be executed when the component is ready, and the command will only be executed once after the component becomes ready. + properties: + cmdExecutorConfig: + description: cmdExecutorConfig is the executor configuration of the post-start command. + properties: + args: + description: args is used to perform statements. + items: + type: string + type: array + command: + description: command to perform statements. + items: + type: string + minItems: 1 + type: array + env: + description: envs is a list of environment variables. + items: + description: EnvVar represents an environment variable present in a Container. + properties: + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + x-kubernetes-preserve-unknown-fields: true + image: + description: image for Connector when executing the command. + type: string + required: + - command + - image + type: object + scriptSpecSelectors: + description: scriptSpecSelectors defines the selector of the scriptSpecs that need to be referenced. Once ScriptSpecSelectors is defined, the scripts defined in scriptSpecs can be referenced in the PostStartAction.CmdExecutorConfig. + items: + properties: + name: + description: ScriptSpec name of the referent, refer to componentDefs[x].scriptSpecs[y].Name. + maxLength: 63 + pattern: ^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$ + type: string + required: + - name + type: object + type: array + required: + - cmdExecutorConfig + type: object probes: description: probes setting for healthy checks. properties: diff --git a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusters.yaml b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusters.yaml index b541ded7b..ec75fb395 100644 --- a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusters.yaml +++ b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusters.yaml @@ -256,7 +256,7 @@ spec: type: boolean replicas: default: 1 - description: Component replicas. The default value is used in ClusterDefinition spec if not specified. + description: Component replicas. format: int32 minimum: 0.0 type: integer diff --git a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/opsrequests.yaml b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/opsrequests.yaml index 77690b1df..449245934 100644 --- a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/opsrequests.yaml +++ b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/opsrequests.yaml @@ -396,7 +396,7 @@ spec: description: restoreTime point in time to restore type: string volumeRestorePolicy: - default: Serial + default: Parallel description: 'the volume claim restore policy, support values: [Serial, Parallel]' enum: - Serial diff --git a/crd-catalog/apecloud/kubeblocks/dataprotection.kubeblocks.io/v1alpha1/backups.yaml b/crd-catalog/apecloud/kubeblocks/dataprotection.kubeblocks.io/v1alpha1/backups.yaml index 7ff87ee39..c2b5ff950 100644 --- a/crd-catalog/apecloud/kubeblocks/dataprotection.kubeblocks.io/v1alpha1/backups.yaml +++ b/crd-catalog/apecloud/kubeblocks/dataprotection.kubeblocks.io/v1alpha1/backups.yaml @@ -83,7 +83,7 @@ spec: - Delete - Retain default: Delete - description: deletionPolicy determines whether the backup contents stored in backup repository should be deleted when the backup custom resource is deleted. Supported values are "Retain" and "Delete". "Retain" means that the backup can not be deleted and remains in 'Deleting' phase. "Delete" means that the backup content and its physical snapshot on backup repository are deleted. + description: 'deletionPolicy determines whether the backup contents stored in backup repository should be deleted when the backup custom resource is deleted. Supported values are "Retain" and "Delete". "Retain" means that the backup can not be deleted and remains in ''Deleting'' phase. "Delete" means that the backup content and its physical snapshot on backup repository are deleted. TODO: for the retain policy, we should support in the future for only deleting the backup custom objects but retaining the backup contents in backup repository. The current implementation only prevent accidental deletion of backup data.' type: string parentBackupName: description: parentBackupName determines the parent backup name for incremental or differential backup. diff --git a/crd-catalog/aws-controllers-k8s/eks-controller/eks.services.k8s.aws/v1alpha1/addons.yaml b/crd-catalog/aws-controllers-k8s/eks-controller/eks.services.k8s.aws/v1alpha1/addons.yaml index dcb28c5a7..2f663772f 100644 --- a/crd-catalog/aws-controllers-k8s/eks-controller/eks.services.k8s.aws/v1alpha1/addons.yaml +++ b/crd-catalog/aws-controllers-k8s/eks-controller/eks.services.k8s.aws/v1alpha1/addons.yaml @@ -55,7 +55,7 @@ spec: description: The name of the add-on. The name must match one of the names that DescribeAddonVersions (https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html) returns. type: string resolveConflicts: - description: "How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are handled based on the value you choose: \n * None – If the self-managed version of the add-on is installed on your cluster, Amazon EKS doesn't change the value. Creation of the add-on might fail. \n * Overwrite – If the self-managed version of the add-on is installed on your cluster and the Amazon EKS default value is different than the existing value, Amazon EKS changes the value to the Amazon EKS default value. \n * Preserve – Not supported. You can set this value when updating an add-on though. For more information, see UpdateAddon (https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html). \n If you don't currently have the self-managed version of the add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS sets all values to default values, regardless of the option that you specify." + description: "How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are handled based on the value you choose: \n * None – If the self-managed version of the add-on is installed on your cluster, Amazon EKS doesn't change the value. Creation of the add-on might fail. \n * Overwrite – If the self-managed version of the add-on is installed on your cluster and the Amazon EKS default value is different than the existing value, Amazon EKS changes the value to the Amazon EKS default value. \n * Preserve – This is similar to the NONE option. If the self-managed version of the add-on is installed on your cluster Amazon EKS doesn't change the add-on resource properties. Creation of the add-on might fail if conflicts are detected. This option works differently during the update operation. For more information, see UpdateAddon (https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html). \n If you don't currently have the self-managed version of the add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS sets all values to default values, regardless of the option that you specify." type: string serviceAccountRoleARN: description: "The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account. The role must be assigned the IAM permissions required by the add-on. If you don't specify an existing IAM role, then the add-on uses the permissions assigned to the node IAM role. For more information, see Amazon EKS node IAM role (https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html) in the Amazon EKS User Guide. \n To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see Enabling IAM roles for service accounts on your cluster (https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) in the Amazon EKS User Guide." diff --git a/crd-catalog/aws-controllers-k8s/eks-controller/eks.services.k8s.aws/v1alpha1/clusters.yaml b/crd-catalog/aws-controllers-k8s/eks-controller/eks.services.k8s.aws/v1alpha1/clusters.yaml index 070059fb8..282d2b1cd 100644 --- a/crd-catalog/aws-controllers-k8s/eks-controller/eks.services.k8s.aws/v1alpha1/clusters.yaml +++ b/crd-catalog/aws-controllers-k8s/eks-controller/eks.services.k8s.aws/v1alpha1/clusters.yaml @@ -82,7 +82,7 @@ spec: controlPlaneInstanceType: type: string controlPlanePlacement: - description: The placement configuration for all the control plane instances of your local Amazon EKS cluster on an Amazon Web Services Outpost. For more information, see Capacity considerations (https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html) in the Amazon EKS User Guide + description: The placement configuration for all the control plane instances of your local Amazon EKS cluster on an Amazon Web Services Outpost. For more information, see Capacity considerations (https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html) in the Amazon EKS User Guide. properties: groupName: type: string diff --git a/crd-catalog/aws-controllers-k8s/iam-controller/iam.services.k8s.aws/v1alpha1/roles.yaml b/crd-catalog/aws-controllers-k8s/iam-controller/iam.services.k8s.aws/v1alpha1/roles.yaml index 2588f01b4..7e03b8a58 100644 --- a/crd-catalog/aws-controllers-k8s/iam-controller/iam.services.k8s.aws/v1alpha1/roles.yaml +++ b/crd-catalog/aws-controllers-k8s/iam-controller/iam.services.k8s.aws/v1alpha1/roles.yaml @@ -40,17 +40,17 @@ spec: type: string type: object maxSessionDuration: - description: "The 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 value of one hour is applied. This setting can have a value from 1 hour to 12 hours. \n Anyone who assumes the role from the or API can use the DurationSeconds API parameter or the duration-seconds CLI parameter to request a longer session. The MaxSessionDuration setting determines the maximum duration that can be requested using the DurationSeconds parameter. If users don't specify a value for the DurationSeconds parameter, their security credentials are valid for one hour by default. This applies when you use the AssumeRole* API operations or the assume-role* CLI operations but does not apply when you use those operations to create a console URL. For more information, see Using IAM roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) in the IAM User Guide." + description: "The 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 value of one hour is applied. This setting can have a value from 1 hour to 12 hours. \n Anyone who assumes the role from the CLI or API can use the DurationSeconds API parameter or the duration-seconds CLI parameter to request a longer session. The MaxSessionDuration setting determines the maximum duration that can be requested using the DurationSeconds parameter. If users don't specify a value for the DurationSeconds parameter, their security credentials are valid for one hour by default. This applies when you use the AssumeRole* API operations or the assume-role* CLI operations but does not apply when you use those operations to create a console URL. For more information, see Using IAM roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) in the IAM User Guide." format: int64 type: integer name: - description: "The name of the role to create. \n IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both \"MyResource\" and \"myresource\"." + description: "The name of the role to create. \n IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both \"MyResource\" and \"myresource\". \n This parameter allows (through its regex pattern (http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-" type: string path: description: "The path to the role. For more information about paths, see IAM Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the IAM User Guide. \n This parameter is optional. If it is not included, it defaults to a slash (/). \n This parameter allows (through its regex pattern (http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (\\u0021) through the DEL character (\\u007F), including most punctuation characters, digits, and upper and lowercased letters." type: string permissionsBoundary: - description: The ARN of the policy that is used to set the permissions boundary for the role. + description: "The ARN of the managed policy that is used to set the permissions boundary for the role. \n A permissions boundary policy defines the maximum permissions that identity-based policies can grant to an entity, but does not grant permissions. Permissions boundaries do not define the maximum permissions that a resource-based policy can grant to an entity. To learn more, see Permissions boundaries for IAM entities (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) in the IAM User Guide. \n For more information about policy types, see Policy types (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policy-types) in the IAM User Guide." type: string permissionsBoundaryRef: description: "AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference type to provide more user friendly syntax for references using 'from' field Ex: APIIDRef: \n from: name: my-api" @@ -146,7 +146,7 @@ spec: description: The stable and unique string identifying the role. For more information about IDs, see IAM identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the IAM User Guide. type: string roleLastUsed: - description: Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see Regions where data is tracked (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period) in the IAM User Guide. + description: Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see Regions where data is tracked (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period) in the IAM user Guide. properties: lastUsedDate: format: date-time diff --git a/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/certificates.yaml b/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/certificates.yaml index 2d02adcf9..f45e249ce 100644 --- a/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/certificates.yaml +++ b/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/certificates.yaml @@ -163,6 +163,61 @@ spec: literalSubject: description: "Requested X.509 certificate subject, represented using the LDAP \"String Representation of a Distinguished Name\" [1]. Important: the LDAP string format also specifies the order of the attributes in the subject, this is important when issuing certs for LDAP authentication. Example: `CN=foo,DC=corp,DC=example,DC=com` More info [1]: https://datatracker.ietf.org/doc/html/rfc4514 More info: https://github.com/cert-manager/cert-manager/issues/3203 More info: https://github.com/cert-manager/cert-manager/issues/4424 \n Cannot be set if the `subject` or `commonName` field is set. This is an Alpha Feature and is only enabled with the `--feature-gates=LiteralCertificateSubject=true` option set on both the controller and webhook components." type: string + nameConstraints: + description: "x.509 certificate NameConstraint extension which MUST NOT be used in a non-CA certificate. More Info: https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.10 \n This is an Alpha Feature and is only enabled with the `--feature-gates=useCertificateRequestNameConstraints=true` option set on both the controller and webhook components." + properties: + critical: + description: if true then the name constraints are marked critical. + type: boolean + excluded: + description: Excluded contains the constraints which must be disallowed. Any name matching a restriction in the excluded field is invalid regardless of information appearing in the permitted + properties: + dnsDomains: + description: DNSDomains is a list of DNS domains that are permitted or excluded. + items: + type: string + type: array + emailAddresses: + description: EmailAddresses is a list of Email Addresses that are permitted or excluded. + items: + type: string + type: array + ipRanges: + description: IPRanges is a list of IP Ranges that are permitted or excluded. This should be a valid CIDR notation. + items: + type: string + type: array + uriDomains: + description: URIDomains is a list of URI domains that are permitted or excluded. + items: + type: string + type: array + type: object + permitted: + description: Permitted contains the constraints in which the names must be located. + properties: + dnsDomains: + description: DNSDomains is a list of DNS domains that are permitted or excluded. + items: + type: string + type: array + emailAddresses: + description: EmailAddresses is a list of Email Addresses that are permitted or excluded. + items: + type: string + type: array + ipRanges: + description: IPRanges is a list of IP Ranges that are permitted or excluded. This should be a valid CIDR notation. + items: + type: string + type: array + uriDomains: + description: URIDomains is a list of URI domains that are permitted or excluded. + items: + type: string + type: array + type: object + type: object privateKey: description: Private key options. These include the key algorithm and size, the used encoding and the rotation policy. properties: diff --git a/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/clusters.yaml b/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/clusters.yaml index a2138835d..5cbf6c8fa 100644 --- a/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/clusters.yaml +++ b/crd-catalog/cloudnative-pg/cloudnative-pg/postgresql.cnpg.io/v1/clusters.yaml @@ -1540,7 +1540,7 @@ spec: description: The server name, required type: string password: - description: The reference to the password to be used to connect to the server + description: The reference to the password to be used to connect to the server. If a password is provided, CloudNativePG creates a PostgreSQL passfile at `/controller/external/NAME/pass` (where "NAME" is the cluster's name). This passfile is automatically referenced in the connection string when establishing a connection to the remote PostgreSQL server from the current PostgreSQL `Cluster`. This ensures secure and efficient password management for external clusters. properties: key: description: The key of the secret to select from. Must be a valid secret key. @@ -1924,6 +1924,9 @@ spec: postgresql: description: Configuration of the PostgreSQL server properties: + enableAlterSystem: + description: If this parameter is true, the user will be able to invoke `ALTER SYSTEM` on this CloudNativePG Cluster. This should only be used for debugging and troubleshooting. Defaults to false. + type: boolean ldap: description: Options to specify LDAP configuration properties: @@ -2921,7 +2924,7 @@ spec: description: Current primary instance type: string currentPrimaryFailingSinceTimestamp: - description: The timestamp when the primary was detected to be unhealthy This field is reported when spec.failoverDelay is populated or during online upgrades + description: The timestamp when the primary was detected to be unhealthy This field is reported when `.spec.failoverDelay` is populated or during online upgrades type: string currentPrimaryTimestamp: description: The timestamp when the last actual promotion to primary has occurred diff --git a/crd-catalog/clusterpedia-io/clusterpedia/cluster.clusterpedia.io/v1alpha2/pediaclusters.yaml b/crd-catalog/clusterpedia-io/clusterpedia/cluster.clusterpedia.io/v1alpha2/pediaclusters.yaml index 5b8578e93..02a607cc5 100644 --- a/crd-catalog/clusterpedia-io/clusterpedia/cluster.clusterpedia.io/v1alpha2/pediaclusters.yaml +++ b/crd-catalog/clusterpedia-io/clusterpedia/cluster.clusterpedia.io/v1alpha2/pediaclusters.yaml @@ -35,6 +35,10 @@ spec: name: ClusterHealthy priority: 10 type: string + - jsonPath: .status.shardingName + name: ShardingName + priority: 10 + type: string name: v1alpha2 schema: openAPIV3Schema: @@ -63,6 +67,8 @@ spec: kubeconfig: format: byte type: string + shardingName: + type: string syncAllCustomResources: type: boolean syncResources: @@ -139,6 +145,8 @@ spec: - type type: object type: array + shardingName: + type: string syncResources: items: properties: diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseautoscalers.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseautoscalers.yaml index 8f9026f57..ae7f74d4a 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseautoscalers.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseautoscalers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbaseautoscalers.couchbase.com spec: diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasebackuprestores.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasebackuprestores.yaml index 0a3093e34..64ae15834 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasebackuprestores.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasebackuprestores.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbasebackuprestores.couchbase.com spec: diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasebackups.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasebackups.yaml index af554f680..9e683d519 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasebackups.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasebackups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbasebackups.couchbase.com spec: @@ -108,6 +108,14 @@ spec: type: array x-kubernetes-list-type: set type: object + defaultRecoveryMethod: + default: none + description: DefaultRecoveryMethod specifies how cbbackupmgr should recover from broken backup/restore attempts. + enum: + - none + - resume + - purge + type: string ephemeralVolume: default: false description: EphemeralVolume sets backup to use an ephemeral volume instead of a persistent volume. This is used when backing up to a remote cloud provider, where a persistent volume is not needed. diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasebuckets.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasebuckets.yaml index 9611e65b9..da49a2db6 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasebuckets.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasebuckets.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbasebuckets.couchbase.com spec: diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseclusters.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseclusters.yaml index a339eab63..0e150ad24 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseclusters.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseclusters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbaseclusters.couchbase.com spec: @@ -340,8 +340,8 @@ spec: type: object type: object autoFailoverMaxCount: - default: 3 - description: AutoFailoverMaxCount is the maximum number of automatic failovers Couchbase server will allow before not allowing any more. This field must be between 1-3 for server versions prior to 7.1.0 default is 3. + default: 1 + description: AutoFailoverMaxCount is the maximum number of automatic failovers Couchbase server will allow before not allowing any more. This field must be between 1-3 for server versions prior to 7.1.0 default is 1. format: int64 minimum: 1.0 type: integer @@ -365,15 +365,25 @@ spec: data: description: Data allows the data service to be configured. properties: + auxIOThreads: + description: AuxIOThreads allows the number of threads used by the data service, per pod, to be altered. This indicates the number of threads that are to be used in the AuxIO thread pool to run auxiliary I/O tasks. This value must be between 4 and 64 threads, and should only be increased where there are sufficient CPU resources allocated for their use. If not specified, this defaults to the default value set by Couchbase Server. + maximum: 64.0 + minimum: 1.0 + type: integer + nonIOThreads: + description: NonIOThreads allows the number of threads used by the data service, per pod, to be altered. This indicates the number of threads that are to be used in the NonIO thread pool to run in memory tasks. This value must be between 4 and 64 threads, and should only be increased where there are sufficient CPU resources allocated for their use. If not specified, this defaults to the default value set by Couchbase Server. + maximum: 64.0 + minimum: 1.0 + type: integer readerThreads: description: ReaderThreads allows the number of threads used by the data service, per pod, to be altered. This value must be between 4 and 64 threads, and should only be increased where there are sufficient CPU resources allocated for their use. If not specified, this defaults to the default value set by Couchbase Server. maximum: 64.0 - minimum: 4.0 + minimum: 1.0 type: integer writerThreads: - description: ReaderThreads allows the number of threads used by the data service, per pod, to be altered. This setting is especially relevant when using "durable writes", increasing this field will have a large impact on performance. This value must be between 4 and 64 threads, and should only be increased where there are sufficient CPU resources allocated for their use. If not specified, this defaults to the default value set by Couchbase Server. + description: WriterThreads allows the number of threads used by the data service, per pod, to be altered. This setting is especially relevant when using "durable writes", increasing this field will have a large impact on performance. This value must be between 4 and 64 threads, and should only be increased where there are sufficient CPU resources allocated for their use. If not specified, this defaults to the default value set by Couchbase Server. maximum: 64.0 - minimum: 4.0 + minimum: 1.0 type: integer type: object dataServiceMemoryQuota: @@ -673,10 +683,10 @@ spec: description: AuthorizationSecret is the name of a Kubernetes secret that contains a bearer token to authorize GET requests to the metrics endpoint type: string enabled: - description: Enabled is a boolean that enables/disables the metrics sidecar container. + description: Enabled is a boolean that enables/disables the metrics sidecar container. This must be set to true, when image is provided. type: boolean image: - description: Image is the metrics image to be used to collect metrics. No validation is carried out as this can be any arbitrary repo and tag. + description: Image is the metrics image to be used to collect metrics. No validation is carried out as this can be any arbitrary repo and tag. enabled must be set to true, when image is provided. type: string refreshRate: default: 60 @@ -833,6 +843,22 @@ spec: type: string type: array x-kubernetes-list-type: set + cloudNativeGateway: + description: DEVELOPER PREVIEW - This feature is in developer preview. CloudNativeGateway is used to provision a gRPC gateway proxying a Couchbase cluster. + properties: + image: + description: 'DEVELOPER PREVIEW - This feature is in developer preview. Image is the Cloud Native Gateway image to be used to run the sidecar container. No validation is carried out as this can be any arbitrary repo and tag. TODO: provide a default kubebuilder default image tag as field is mandatory.' + type: string + tls: + description: DEVELOPER PREVIEW - This feature is in developer preview. TLS defines the TLS configuration for the Cloud Native Gateway server including server and client certificate configuration, and TLS security policies. + properties: + serverSecretName: + description: DEVELOPER PREVIEW - This feature is in developer preview. ServerSecretName specifies the secret name, in the same namespace as the cluster, that contains Cloud Native Gateway gRPC server TLS data. The secret is expected to contain "tls.crt" and "tls.key" as per the kubernetes.io/tls secret type. + type: string + type: object + required: + - image + type: object disableUIOverHTTP: description: DisableUIOverHTTP is used to explicitly enable and disable UI access over the HTTP protocol. If not specified, this field defaults to false. type: boolean @@ -1222,6 +1248,94 @@ spec: - hosts - port type: object + podSecurityContext: + description: 'PodSecurityContext allows the configuration of the security context for all Couchbase server pods. When using persistent volumes you may need to set the fsGroup field in order to write to the volume. For non-root clusters you must also set runAsUser to 1000, corresponding to the Couchbase user in official container images. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' + properties: + fsGroup: + description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: \n 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- \n If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows." + format: int64 + type: integer + fsGroupChangePolicy: + description: 'fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used. Note that this field cannot be set when spec.os.name is windows.' + type: string + runAsGroup: + description: The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. + format: int64 + type: integer + runAsNonRoot: + description: Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. + type: boolean + runAsUser: + description: The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. + format: int64 + type: integer + seLinuxOptions: + description: The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. + properties: + level: + description: Level is SELinux level label that applies to the container. + type: string + role: + description: Role is a SELinux role label that applies to the container. + type: string + type: + description: Type is a SELinux type label that applies to the container. + type: string + user: + description: User is a SELinux user label that applies to the container. + type: string + type: object + seccompProfile: + description: The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows. + properties: + localhostProfile: + description: localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is "Localhost". + type: string + type: + description: "type indicates which kind of seccomp profile will be applied. Valid options are: \n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied." + type: string + required: + - type + type: object + supplementalGroups: + description: A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows. + items: + format: int64 + type: integer + type: array + sysctls: + description: Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows. + items: + description: Sysctl defines a kernel parameter to be set + properties: + name: + description: Name of a property to set + type: string + value: + description: Value of a property to set + type: string + required: + - name + - value + type: object + type: array + windowsOptions: + description: The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux. + properties: + gmsaCredentialSpec: + description: GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. + type: string + gmsaCredentialSpecName: + description: GMSACredentialSpecName is the name of the GMSA credential spec to use. + type: string + hostProcess: + description: HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true. + type: boolean + runAsUserName: + description: The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. + type: string + type: object + type: object rbac: description: RBAC is the options provided for enabling and selecting RBAC User resources to manage. properties: @@ -1259,6 +1373,93 @@ spec: type: object type: object type: object + securityContext: + description: 'SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. Use securityContext.allowPrivilegeEscalation field to grant more privileges than its parent process. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' + properties: + allowPrivilegeEscalation: + description: 'AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.' + type: boolean + capabilities: + description: The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows. + properties: + add: + description: Added capabilities + items: + description: Capability represent POSIX capabilities type + type: string + type: array + drop: + description: Removed capabilities + items: + description: Capability represent POSIX capabilities type + type: string + type: array + type: object + privileged: + description: Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows. + type: boolean + procMount: + description: procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. + type: string + readOnlyRootFilesystem: + description: Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows. + type: boolean + runAsGroup: + description: The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows. + format: int64 + type: integer + runAsNonRoot: + description: Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. + type: boolean + runAsUser: + description: The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows. + format: int64 + type: integer + seLinuxOptions: + description: The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows. + properties: + level: + description: Level is SELinux level label that applies to the container. + type: string + role: + description: Role is a SELinux role label that applies to the container. + type: string + type: + description: Type is a SELinux type label that applies to the container. + type: string + user: + description: User is a SELinux user label that applies to the container. + type: string + type: object + seccompProfile: + description: The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows. + properties: + localhostProfile: + description: localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is "Localhost". + type: string + type: + description: "type indicates which kind of seccomp profile will be applied. Valid options are: \n Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied." + type: string + required: + - type + type: object + windowsOptions: + description: The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux. + properties: + gmsaCredentialSpec: + description: GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. + type: string + gmsaCredentialSpecName: + description: GMSACredentialSpecName is the name of the GMSA credential spec to use. + type: string + hostProcess: + description: HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true. + type: boolean + runAsUserName: + description: The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. + type: string + type: object + type: object uiSessionTimeout: default: 0 description: UISessionTimeout sets how long, in minutes, before a user is declared inactive and signed out from the Couchbase Server UI. 0 represents no time out. @@ -1269,7 +1470,7 @@ spec: - adminSecret type: object securityContext: - description: 'SecurityContext allows the configuration of the security context for all Couchbase server pods. When using persistent volumes you may need to set the fsGroup field in order to write to the volume. For non-root clusters you must also set runAsUser to 1000, corresponding to the Couchbase user in official container images. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' + description: 'DEPRECATED - by spec.security.securityContext SecurityContext allows the configuration of the security context for all Couchbase server pods. When using persistent volumes you may need to set the fsGroup field in order to write to the volume. For non-root clusters you must also set runAsUser to 1000, corresponding to the Couchbase user in official container images. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/' properties: fsGroup: description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: \n 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- \n If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows." @@ -2399,7 +2600,7 @@ spec: pattern: ^((couchbase|http)(s)?(://))?((\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b)|((([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9]))|\[(\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*\]))(:[0-9]{0,5})?(\\{0,1}\?network=[^&]+)?$ type: string name: - description: Name of the remote cluster. + description: Name of the remote cluster. Note that, -operator-managed is added as suffix by operator automatically to the name in order to diffrentiate from non operator managed remote clusters. type: string replications: description: Replications are replication streams from this cluster to the remote one. This field defines how to look up CouchbaseReplication resources. By default any CouchbaseReplication resources in the namespace will be considered. diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasecollectiongroups.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasecollectiongroups.yaml index 6f80f79ef..ec94005c9 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasecollectiongroups.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasecollectiongroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbasecollectiongroups.couchbase.com spec: diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasecollections.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasecollections.yaml index 1641c12dc..216ac3ddb 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasecollections.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasecollections.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbasecollections.couchbase.com spec: diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseephemeralbuckets.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseephemeralbuckets.yaml index 65b1f98a0..21571212c 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseephemeralbuckets.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseephemeralbuckets.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbaseephemeralbuckets.couchbase.com spec: diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasegroups.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasegroups.yaml index 6935f12d7..7927a7c44 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasegroups.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasegroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbasegroups.couchbase.com spec: diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasememcachedbuckets.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasememcachedbuckets.yaml index 4b7aab820..e0d177d9f 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasememcachedbuckets.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasememcachedbuckets.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbasememcachedbuckets.couchbase.com spec: diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasemigrationreplications.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasemigrationreplications.yaml index 4fb237dcc..d101a6357 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasemigrationreplications.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasemigrationreplications.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbasemigrationreplications.couchbase.com spec: diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasereplications.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasereplications.yaml index bbfdb85a5..c8923864e 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasereplications.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasereplications.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbasereplications.couchbase.com spec: diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaserolebindings.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaserolebindings.yaml index 55f5f0f97..8827e8892 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaserolebindings.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaserolebindings.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbaserolebindings.couchbase.com spec: diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasescopegroups.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasescopegroups.yaml index 9b4e12fa6..db45fd551 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasescopegroups.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasescopegroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbasescopegroups.couchbase.com spec: diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasescopes.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasescopes.yaml index bac419e4d..e2cfd7fa8 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasescopes.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasescopes.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbasescopes.couchbase.com spec: diff --git a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseusers.yaml b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseusers.yaml index 354f33d59..6aeced7e0 100644 --- a/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseusers.yaml +++ b/crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbaseusers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - config.couchbase.com/version: 2.4.2 + config.couchbase.com/version: 2.5.0 controller-gen.kubebuilder.io/version: v0.8.0 name: couchbaseusers.couchbase.com spec: diff --git a/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1/compositeresourcedefinitions.yaml b/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1/compositeresourcedefinitions.yaml index 8f34d3ef0..f7318deaa 100644 --- a/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1/compositeresourcedefinitions.yaml +++ b/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1/compositeresourcedefinitions.yaml @@ -247,6 +247,7 @@ spec: type: boolean deprecationWarning: description: DeprecationWarning specifies the message that should be shown to the user when using this version. + maxLength: 256 type: string name: description: Name of this version, e.g. “v1”, “v2beta1”, etc. Composite resources are served under this version at `/apis///...` if `served` is true. diff --git a/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1/compositionrevisions.yaml b/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1/compositionrevisions.yaml index 9f5cdb031..892e6b13e 100644 --- a/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1/compositionrevisions.yaml +++ b/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1/compositionrevisions.yaml @@ -120,6 +120,10 @@ spec: description: MaxMatch specifies the number of extracted EnvironmentConfigs in Multiple mode, extracts all if nil. format: int64 type: integer + minMatch: + description: MinMatch specifies the required minimum of extracted EnvironmentConfigs in Multiple mode. + format: int64 + type: integer mode: default: Single description: 'Mode specifies retrieval strategy: "Single" or "Multiple".' diff --git a/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1/compositions.yaml b/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1/compositions.yaml index f74434a82..1a5f5ecb1 100644 --- a/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1/compositions.yaml +++ b/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1/compositions.yaml @@ -117,6 +117,10 @@ spec: description: MaxMatch specifies the number of extracted EnvironmentConfigs in Multiple mode, extracts all if nil. format: int64 type: integer + minMatch: + description: MinMatch specifies the required minimum of extracted EnvironmentConfigs in Multiple mode. + format: int64 + type: integer mode: default: Single description: 'Mode specifies retrieval strategy: "Single" or "Multiple".' diff --git a/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1beta1/compositionrevisions.yaml b/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1beta1/compositionrevisions.yaml index 2e8e5c79d..41e9c72fd 100644 --- a/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1beta1/compositionrevisions.yaml +++ b/crd-catalog/crossplane/crossplane/apiextensions.crossplane.io/v1beta1/compositionrevisions.yaml @@ -120,6 +120,10 @@ spec: description: MaxMatch specifies the number of extracted EnvironmentConfigs in Multiple mode, extracts all if nil. format: int64 type: integer + minMatch: + description: MinMatch specifies the required minimum of extracted EnvironmentConfigs in Multiple mode. + format: int64 + type: integer mode: default: Single description: 'Mode specifies retrieval strategy: "Single" or "Multiple".' diff --git a/crd-catalog/flanksource/canary-checker/canaries.flanksource.com/v1/canaries.yaml b/crd-catalog/flanksource/canary-checker/canaries.flanksource.com/v1/canaries.yaml index 28638ce19..9f0ca17fb 100644 --- a/crd-catalog/flanksource/canary-checker/canaries.flanksource.com/v1/canaries.yaml +++ b/crd-catalog/flanksource/canary-checker/canaries.flanksource.com/v1/canaries.yaml @@ -166,6 +166,100 @@ spec: type: string type: object type: object + relationships: + description: Relationships defines a way to link the check results to components and configs using lookup expressions. + properties: + components: + items: + description: LookupSpec defines a tuple of fields to lookup. + properties: + name: + description: Lookup specifies the type of lookup to perform. + properties: + expr: + description: Expr is a cel-expression. + type: string + label: + description: Label specifies the key to lookup on the label. + type: string + value: + description: Value is the static value to use. + type: string + type: object + namespace: + description: Lookup specifies the type of lookup to perform. + properties: + expr: + description: Expr is a cel-expression. + type: string + label: + description: Label specifies the key to lookup on the label. + type: string + value: + description: Value is the static value to use. + type: string + type: object + type: + description: Lookup specifies the type of lookup to perform. + properties: + expr: + description: Expr is a cel-expression. + type: string + label: + description: Label specifies the key to lookup on the label. + type: string + value: + description: Value is the static value to use. + type: string + type: object + type: object + type: array + configs: + items: + description: LookupSpec defines a tuple of fields to lookup. + properties: + name: + description: Lookup specifies the type of lookup to perform. + properties: + expr: + description: Expr is a cel-expression. + type: string + label: + description: Label specifies the key to lookup on the label. + type: string + value: + description: Value is the static value to use. + type: string + type: object + namespace: + description: Lookup specifies the type of lookup to perform. + properties: + expr: + description: Expr is a cel-expression. + type: string + label: + description: Label specifies the key to lookup on the label. + type: string + value: + description: Value is the static value to use. + type: string + type: object + type: + description: Lookup specifies the type of lookup to perform. + properties: + expr: + description: Expr is a cel-expression. + type: string + label: + description: Label specifies the key to lookup on the label. + type: string + value: + description: Value is the static value to use. + type: string + type: object + type: object + type: array + type: object test: properties: expr: diff --git a/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2beta1/helmreleases.yaml b/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2beta1/helmreleases.yaml index 3c789525e..ee8c0c41e 100644 --- a/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2beta1/helmreleases.yaml +++ b/crd-catalog/fluxcd/helm-controller/helm.toolkit.fluxcd.io/v2beta1/helmreleases.yaml @@ -158,6 +158,56 @@ spec: - name type: object type: array + driftDetection: + description: "DriftDetection holds the configuration for detecting and handling differences between the manifest in the Helm storage and the resources currently existing in the cluster. \n Note: this field is provisional to the v2beta2 API, and not actively used by v2beta1 HelmReleases." + properties: + ignore: + description: Ignore contains a list of rules for specifying which changes to ignore during diffing. + items: + description: IgnoreRule defines a rule to selectively disregard specific changes during the drift detection process. + properties: + paths: + description: Paths is a list of JSON Pointer (RFC 6901) paths to be excluded from consideration in a Kubernetes object. + items: + type: string + type: array + target: + description: Target is a selector for specifying Kubernetes objects to which this rule applies. If Target is not set, the Paths will be ignored for all Kubernetes objects within the manifest of the Helm release. + properties: + annotationSelector: + description: AnnotationSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource annotations. + type: string + group: + description: Group is the API group to select resources from. Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md + type: string + kind: + description: Kind of the API Group to select resources from. Together with Group and Version it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md + type: string + labelSelector: + description: LabelSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource labels. + type: string + name: + description: Name to match resources with. + type: string + namespace: + description: Namespace to select resources from. + type: string + version: + description: Version of the API Group to select resources from. Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md + type: string + type: object + required: + - paths + type: object + type: array + mode: + description: Mode defines how differences should be handled between the Helm manifest and the manifest currently applied to the cluster. If not explicitly set, it defaults to DiffModeDisabled. + enum: + - enabled + - warn + - disabled + type: string + type: object install: description: Install holds the configuration for Helm install actions for this HelmRelease. properties: @@ -713,9 +763,15 @@ spec: lastAttemptedValuesChecksum: description: LastAttemptedValuesChecksum is the SHA1 checksum of the values of the last reconciliation attempt. type: string + lastHandledForceAt: + description: "LastHandledForceAt holds the value of the most recent force request value, so a change of the annotation value can be detected. \n Note: this field is provisional to the v2beta2 API, and not actively used by v2beta1 HelmReleases." + type: string lastHandledReconcileAt: description: LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change of the annotation value can be detected. type: string + lastHandledResetAt: + description: "LastHandledResetAt holds the value of the most recent reset request value, so a change of the annotation value can be detected. \n Note: this field is provisional to the v2beta2 API, and not actively used by v2beta1 HelmReleases." + type: string lastReleaseRevision: description: LastReleaseRevision is the revision of the last successful Helm release. type: integer diff --git a/crd-catalog/fluxcd/notification-controller/notification.toolkit.fluxcd.io/v1beta3/providers.yaml b/crd-catalog/fluxcd/notification-controller/notification.toolkit.fluxcd.io/v1beta3/providers.yaml index 00a76e900..e9a9fdb79 100644 --- a/crd-catalog/fluxcd/notification-controller/notification.toolkit.fluxcd.io/v1beta3/providers.yaml +++ b/crd-catalog/fluxcd/notification-controller/notification.toolkit.fluxcd.io/v1beta3/providers.yaml @@ -50,6 +50,10 @@ spec: description: Channel specifies the destination channel where events should be posted. maxLength: 2048 type: string + interval: + description: Interval at which to reconcile the Provider with its Secret references. Deprecated and not used in v1beta3. + pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$ + type: string proxy: description: Proxy the HTTP/S address of the proxy server. maxLength: 2048 diff --git a/crd-catalog/hashicorp/vault-secrets-operator/secrets.hashicorp.com/v1beta1/vaultpkisecrets.yaml b/crd-catalog/hashicorp/vault-secrets-operator/secrets.hashicorp.com/v1beta1/vaultpkisecrets.yaml index 3319e346f..0da244c94 100644 --- a/crd-catalog/hashicorp/vault-secrets-operator/secrets.hashicorp.com/v1beta1/vaultpkisecrets.yaml +++ b/crd-catalog/hashicorp/vault-secrets-operator/secrets.hashicorp.com/v1beta1/vaultpkisecrets.yaml @@ -69,7 +69,8 @@ spec: description: 'ExcludeCNFromSans from DNS or Email Subject Alternate Names. Default: false' type: boolean expiryOffset: - description: ExpiryOffset to use for computing when the certificate should be renewed. The rotation time will be difference between the expiration and the offset. Should be in duration notation e.g. 30s, 120s, etc. Set to empty string "" to prevent certificate rotation. + description: ExpiryOffset to use for computing when the certificate should be renewed. The rotation time will be difference between the expiration and the offset. Should be in duration notation e.g. 30s, 120s, etc. + pattern: ^([0-9]+(\.[0-9]+)?(s|m|h))$ type: string format: description: 'Format for the certificate. Choices: "pem", "der", "pem_bundle". If "pem_bundle", any private key and issuing cert will be appended to the certificate pem. If "der", the value will be base64 encoded. Default: pem' @@ -125,6 +126,7 @@ spec: type: array ttl: description: 'TTL for the certificate; sets the expiration date. If not specified the Vault role''s default, backend default, or system default TTL is used, in that order. Cannot be larger than the mount''s max TTL. Note: this only has an effect when generating a CA cert or signing a CA cert, not when generating a CSR for an intermediate CA. Should be in duration notation e.g. 120s, 2h, etc.' + pattern: ^([0-9]+(\.[0-9]+)?(s|m|h))$ type: string uriSans: description: The requested URI SANs. @@ -147,12 +149,25 @@ spec: expiration: format: int64 type: integer + lastGeneration: + description: LastGeneration is the Generation of the last reconciled resource. + format: int64 + type: integer + lastRotation: + description: LastLastRotation of the certificate. + format: int64 + type: integer + secretMAC: + description: "SecretMAC used when deciding whether new Vault secret data should be synced. \n The controller will compare the \"new\" Vault secret data to this value using HMAC, if they are different, then the data will be synced to the Destination. \n The SecretMac is also used to detect drift in the Destination Secret's Data. If drift is detected the data will be synced to the Destination." + type: string serialNumber: type: string valid: type: boolean required: - error + - lastGeneration + - lastRotation - valid type: object type: object diff --git a/crd-catalog/istio/istio/security.istio.io/v1/authorizationpolicies.yaml b/crd-catalog/istio/istio/security.istio.io/v1/authorizationpolicies.yaml index e4f7340dc..853cd30b7 100644 --- a/crd-catalog/istio/istio/security.istio.io/v1/authorizationpolicies.yaml +++ b/crd-catalog/istio/istio/security.istio.io/v1/authorizationpolicies.yaml @@ -198,6 +198,7 @@ spec: type: object type: object targetRef: + description: Optional. properties: group: description: group is the group of the target resource. diff --git a/crd-catalog/istio/istio/security.istio.io/v1/requestauthentications.yaml b/crd-catalog/istio/istio/security.istio.io/v1/requestauthentications.yaml index 49a4785a6..6a5ec2f09 100644 --- a/crd-catalog/istio/istio/security.istio.io/v1/requestauthentications.yaml +++ b/crd-catalog/istio/istio/security.istio.io/v1/requestauthentications.yaml @@ -108,6 +108,7 @@ spec: type: object type: object targetRef: + description: Optional. properties: group: description: group is the group of the target resource. diff --git a/crd-catalog/istio/istio/security.istio.io/v1beta1/authorizationpolicies.yaml b/crd-catalog/istio/istio/security.istio.io/v1beta1/authorizationpolicies.yaml index d6a51f957..cfadce767 100644 --- a/crd-catalog/istio/istio/security.istio.io/v1beta1/authorizationpolicies.yaml +++ b/crd-catalog/istio/istio/security.istio.io/v1beta1/authorizationpolicies.yaml @@ -198,6 +198,7 @@ spec: type: object type: object targetRef: + description: Optional. properties: group: description: group is the group of the target resource. diff --git a/crd-catalog/istio/istio/security.istio.io/v1beta1/requestauthentications.yaml b/crd-catalog/istio/istio/security.istio.io/v1beta1/requestauthentications.yaml index bee207c95..db8c8a897 100644 --- a/crd-catalog/istio/istio/security.istio.io/v1beta1/requestauthentications.yaml +++ b/crd-catalog/istio/istio/security.istio.io/v1beta1/requestauthentications.yaml @@ -108,6 +108,7 @@ spec: type: object type: object targetRef: + description: Optional. properties: group: description: group is the group of the target resource. diff --git a/crd-catalog/karmada-io/karmada/networking.karmada.io/v1alpha1/multiclusterservices.yaml b/crd-catalog/karmada-io/karmada/networking.karmada.io/v1alpha1/multiclusterservices.yaml index f3f685ef1..ccd05dec8 100644 --- a/crd-catalog/karmada-io/karmada/networking.karmada.io/v1alpha1/multiclusterservices.yaml +++ b/crd-catalog/karmada-io/karmada/networking.karmada.io/v1alpha1/multiclusterservices.yaml @@ -33,6 +33,16 @@ spec: spec: description: Spec is the desired state of the MultiClusterService. properties: + consumerClusters: + description: ConsumerClusters specifies the clusters where the service will be exposed, for clients. If leave it empty, the service will be exposed to all clusters. + items: + description: ClusterSelector specifies the cluster to be selected. + properties: + name: + description: Name is the name of the cluster to be selected. + type: string + type: object + type: array ports: description: Ports is the list of ports that are exposed by this MultiClusterService. No specified port will be filtered out during the service exposure and discovery process. All ports in the referencing service will be exposed by default. items: @@ -49,8 +59,18 @@ spec: - port type: object type: array + providerClusters: + description: ProviderClusters specifies the clusters which will provide the service backend. If leave it empty, we will collect the backend endpoints from all clusters and sync them to the ConsumerClusters. + items: + description: ClusterSelector specifies the cluster to be selected. + properties: + name: + description: Name is the name of the cluster to be selected. + type: string + type: object + type: array range: - description: 'Range specifies the ranges where the referencing service should be exposed. Only valid and optional in case of Types contains CrossCluster. If not set and Types contains CrossCluster, all clusters will be selected, that means the referencing service will be exposed across all registered clusters. Deprecated: in favor of ServiceProvisionClusters/ServiceConsumptionClusters.' + description: 'Range specifies the ranges where the referencing service should be exposed. Only valid and optional in case of Types contains CrossCluster. If not set and Types contains CrossCluster, all clusters will be selected, that means the referencing service will be exposed across all registered clusters. Deprecated: in favor of ProviderClusters/ConsumerClusters.' properties: clusterNames: description: ClusterNames is the list of clusters to be selected. @@ -59,12 +79,12 @@ spec: type: array type: object serviceConsumptionClusters: - description: ServiceConsumptionClusters specifies the clusters where the service will be exposed, for clients. If leave it empty, the service will be exposed to all clusters. + description: 'ServiceConsumptionClusters specifies the clusters where the service will be exposed, for clients. If leave it empty, the service will be exposed to all clusters. Deprecated: in favor of ProviderClusters/ConsumerClusters.' items: type: string type: array serviceProvisionClusters: - description: ServiceProvisionClusters specifies the clusters which will provision the service backend. If leave it empty, we will collect the backend endpoints from all clusters and sync them to the ServiceConsumptionClusters. + description: 'ServiceProvisionClusters specifies the clusters which will provision the service backend. If leave it empty, we will collect the backend endpoints from all clusters and sync them to the ServiceConsumptionClusters. Deprecated: in favor of ProviderClusters/ConsumerClusters.' items: type: string type: array diff --git a/crd-catalog/kubernetes-sigs/security-profiles-operator/security-profiles-operator.x-k8s.io/v1alpha1/securityprofilesoperatordaemons.yaml b/crd-catalog/kubernetes-sigs/security-profiles-operator/security-profiles-operator.x-k8s.io/v1alpha1/securityprofilesoperatordaemons.yaml index 414c4ba75..c690af6c5 100644 --- a/crd-catalog/kubernetes-sigs/security-profiles-operator/security-profiles-operator.x-k8s.io/v1alpha1/securityprofilesoperatordaemons.yaml +++ b/crd-catalog/kubernetes-sigs/security-profiles-operator/security-profiles-operator.x-k8s.io/v1alpha1/securityprofilesoperatordaemons.yaml @@ -172,7 +172,7 @@ spec: description: Required. A pod affinity term, associated with the corresponding weight. properties: labelSelector: - description: A label query over a set of resources, in this case pods. + description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -202,6 +202,18 @@ spec: type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. properties: @@ -259,7 +271,7 @@ spec: description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running properties: labelSelector: - description: A label query over a set of resources, in this case pods. + description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -289,6 +301,18 @@ spec: type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. properties: @@ -345,7 +369,7 @@ spec: description: Required. A pod affinity term, associated with the corresponding weight. properties: labelSelector: - description: A label query over a set of resources, in this case pods. + description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -375,6 +399,18 @@ spec: type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. properties: @@ -432,7 +468,7 @@ spec: description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running properties: labelSelector: - description: A label query over a set of resources, in this case pods. + description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -462,6 +498,18 @@ spec: type: object type: object x-kubernetes-map-type: atomic + matchLabelKeys: + description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + items: + type: string + type: array + x-kubernetes-list-type: atomic namespaceSelector: description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. properties: diff --git a/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v1/testexecutions.yaml b/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v1/testexecutions.yaml index c74bf3804..6315aa29a 100644 --- a/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v1/testexecutions.yaml +++ b/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v1/testexecutions.yaml @@ -55,9 +55,17 @@ spec: items: type: string type: array + masks: + description: regexp to filter scraped artifacts, single or comma separated + items: + type: string + type: array omitFolderPerExecution: description: don't use a separate folder for execution artifacts type: boolean + sharedBetweenPods: + description: whether to share volume between pods + type: boolean storageBucket: description: artifact bucket storage type: string @@ -385,9 +393,17 @@ spec: items: type: string type: array + masks: + description: regexp to filter scraped artifacts, single or comma separated + items: + type: string + type: array omitFolderPerExecution: description: don't use a separate folder for execution artifacts type: boolean + sharedBetweenPods: + description: whether to share volume between pods + type: boolean storageBucket: description: artifact bucket storage type: string diff --git a/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v1/testsuiteexecutions.yaml b/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v1/testsuiteexecutions.yaml index 9600db872..f41dbef9b 100644 --- a/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v1/testsuiteexecutions.yaml +++ b/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v1/testsuiteexecutions.yaml @@ -243,6 +243,13 @@ spec: items: description: execution result returned from executor properties: + duration: + description: step duration + type: string + endTime: + description: step end time + format: date-time + type: string execute: items: description: execution result returned from executor @@ -269,9 +276,17 @@ spec: items: type: string type: array + masks: + description: regexp to filter scraped artifacts, single or comma separated + items: + type: string + type: array omitFolderPerExecution: description: don't use a separate folder for execution artifacts type: boolean + sharedBetweenPods: + description: whether to share volume between pods + type: boolean storageBucket: description: artifact bucket storage type: string @@ -663,6 +678,10 @@ spec: type: object type: object type: array + startTime: + description: step start time + format: date-time + type: string step: description: set of steps run in parallel properties: @@ -759,9 +778,17 @@ spec: items: type: string type: array + masks: + description: regexp to filter scraped artifacts, single or comma separated + items: + type: string + type: array omitFolderPerExecution: description: don't use a separate folder for execution artifacts type: boolean + sharedBetweenPods: + description: whether to share volume between pods + type: boolean storageBucket: description: artifact bucket storage type: string diff --git a/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v3/tests.yaml b/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v3/tests.yaml index 46a58b4bc..fe926b056 100644 --- a/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v3/tests.yaml +++ b/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v3/tests.yaml @@ -141,9 +141,17 @@ spec: items: type: string type: array + masks: + description: regexp to filter scraped artifacts, single or comma separated + items: + type: string + type: array omitFolderPerExecution: description: don't use a separate folder for execution artifacts type: boolean + sharedBetweenPods: + description: whether to share volume between pods + type: boolean storageBucket: description: artifact bucket storage type: string diff --git a/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v3/testsuites.yaml b/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v3/testsuites.yaml index 34c3f4915..849b12845 100644 --- a/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v3/testsuites.yaml +++ b/crd-catalog/kubeshop/testkube-operator/tests.testkube.io/v3/testsuites.yaml @@ -45,6 +45,11 @@ spec: format: int32 type: integer type: array + previousTestNames: + description: previous test names + items: + type: string + type: array type: object execute: items: @@ -81,6 +86,11 @@ spec: format: int32 type: integer type: array + previousTestNames: + description: previous test names + items: + type: string + type: array type: object execute: items: @@ -263,6 +273,11 @@ spec: format: int32 type: integer type: array + previousTestNames: + description: previous test names + items: + type: string + type: array type: object execute: items: diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshfaultinjections.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshfaultinjections.yaml index 1943f8c68..1843347d0 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshfaultinjections.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshfaultinjections.yaml @@ -155,6 +155,99 @@ spec: description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` type: object type: object + to: + description: To list makes a match between clients and corresponding configurations + items: + properties: + default: + description: Default is a configuration specific to the group of destinations referenced in 'targetRef' + properties: + http: + description: Http allows to define list of Http faults between dataplanes. + items: + description: FaultInjection defines the configuration of faults between dataplanes. + properties: + abort: + description: Abort defines a configuration of not delivering requests to destination service and replacing the responses from destination dataplane by predefined status code + properties: + httpStatus: + description: HTTP status code which will be returned to source side + format: int32 + type: integer + percentage: + anyOf: + - type: integer + - type: string + description: Percentage of requests on which abort will be injected, has to be either int or decimal represented as string. + x-kubernetes-int-or-string: true + required: + - httpStatus + - percentage + type: object + delay: + description: Delay defines configuration of delaying a response from a destination + properties: + percentage: + anyOf: + - type: integer + - type: string + description: Percentage of requests on which delay will be injected, has to be either int or decimal represented as string. + x-kubernetes-int-or-string: true + value: + description: The duration during which the response will be delayed + type: string + required: + - percentage + - value + type: object + responseBandwidth: + description: ResponseBandwidth defines a configuration to limit the speed of responding to the requests + properties: + limit: + description: Limit is represented by value measure in gbps, mbps, kbps or bps, e.g. 10kbps + type: string + percentage: + anyOf: + - type: integer + - type: string + description: Percentage of requests on which response bandwidth limit will be either int or decimal represented as string. + x-kubernetes-int-or-string: true + required: + - limit + - percentage + type: object + type: object + type: array + type: object + targetRef: + description: TargetRef is a reference to the resource that represents a group of destinations. + properties: + kind: + description: Kind of the referenced resource + enum: + - Mesh + - MeshSubset + - MeshGateway + - MeshService + - MeshServiceSubset + - MeshHTTPRoute + type: string + mesh: + description: Mesh is reserved for future use to identify cross mesh resources. + type: string + name: + description: 'Name of the referenced resource. Can only be used with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute`' + type: string + tags: + additionalProperties: + type: string + description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + type: object + type: object + required: + - targetRef + type: object + type: array required: - targetRef type: object diff --git a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/backups.yaml b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/backups.yaml index cb00a29f5..a1c3c91be 100644 --- a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/backups.yaml +++ b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/backups.yaml @@ -45,7 +45,7 @@ spec: description: BackupSpec defines the desired state of Backup properties: affinity: - description: Affinity is a group of affinity scheduling rules. + description: Affinity to be used in the Backup Pod. properties: nodeAffinity: description: Describes node affinity scheduling rules for the pod. @@ -517,14 +517,17 @@ spec: type: object type: object args: + description: Args to be used in the Backup container. items: type: string type: array backoffLimit: default: 5 + description: BackoffLimit defines the maximum number of attempts to successfully take a Backup. format: int32 type: integer mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -549,19 +552,22 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic maxRetentionDays: default: 30 + description: MaxRetentionDays defined the maximum age that Backups should have. Old backup will be cleaned up by the Backup Job. format: int32 type: integer nodeSelector: additionalProperties: type: string + description: NodeSelector to be used in the Backup Pod. type: object resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." @@ -599,22 +605,30 @@ spec: type: object restartPolicy: default: OnFailure - description: RestartPolicy describes how the container should be restarted. Only one of the following restart policies may be specified. If none of the following policies is specified, the default one is RestartPolicyAlways. + description: RestartPolicy to be added to the Backup Pod. + enum: + - Always + - OnFailure + - Never type: string schedule: + description: Schedule defines when the Backup will be taken. properties: cron: + description: Cron is a cron expression that defines the schedule. type: string suspend: default: false + description: Suspend defines whether the schedule is active or not. type: boolean required: - cron type: object storage: + description: Storage to be used in the Backup. properties: persistentVolumeClaim: - description: PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes + description: PersistentVolumeClaim is a Kubernetes PVC specification. properties: accessModes: description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' @@ -736,7 +750,7 @@ spec: type: string type: object volume: - description: Represents the source of a volume to mount. Only one of its members may be specified. + description: Volume is a Kubernetes volume specification. properties: awsElasticBlockStore: description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' @@ -1680,6 +1694,7 @@ spec: type: object type: object tolerations: + description: Tolerations to be used in the Backup Pod. items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: @@ -1709,6 +1724,7 @@ spec: description: BackupStatus defines the observed state of Backup properties: conditions: + description: Conditions for the Backup object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: diff --git a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/connections.yaml b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/connections.yaml index ff9b28fe2..017fa51a9 100644 --- a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/connections.yaml +++ b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/connections.yaml @@ -48,15 +48,20 @@ spec: description: ConnectionSpec defines the desired state of Connection properties: database: + description: Database to use for configuring the Connection. type: string healthCheck: + description: HealthCheck to be used in the Connection. properties: interval: + description: Interval used to perform health checks. type: string retryInterval: + description: RetryInterval is the intervañ used to perform health check retries. type: string type: object mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -81,15 +86,17 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic params: additionalProperties: type: string + description: Params to be used in the Connection. type: object passwordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: PasswordSecretKeyRef is a reference to the password to use for configuring the Connection. properties: key: description: The key of the secret to select from. Must be a valid secret key. @@ -105,35 +112,48 @@ spec: type: object x-kubernetes-map-type: atomic secretName: + description: SecretName to be used in the Connection. type: string secretTemplate: + description: SecretTemplate to be used in the Connection. properties: annotations: additionalProperties: type: string + description: Annotations to be added to the Secret object. type: object databaseKey: + description: DatabaseKey to be used in the Secret. type: string format: + description: Format to be used in the Secret. type: string hostKey: + description: HostKey to be used in the Secret. type: string key: + description: Key to be used in the Secret. type: string labels: additionalProperties: type: string + description: Labels to be added to the Secret object. type: object passwordKey: + description: PasswordKey to be used in the Secret. type: string portKey: + description: PortKey to be used in the Secret. type: string usernameKey: + description: UsernameKey to be used in the Secret. type: string type: object serviceName: + description: ServiceName to be used in the Connection. type: string username: + description: Username to use for configuring the Connection. type: string required: - mariaDbRef @@ -144,6 +164,7 @@ spec: description: ConnectionStatus defines the observed state of Connection properties: conditions: + description: Conditions for the Connection object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: diff --git a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/databases.yaml b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/databases.yaml index 2e779366c..087d9a545 100644 --- a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/databases.yaml +++ b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/databases.yaml @@ -55,11 +55,14 @@ spec: properties: characterSet: default: utf8 + description: CharacterSet to use in the Database. type: string collate: default: utf8_general_ci + description: CharacterSet to use in the Database. type: string mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -84,13 +87,16 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic name: + description: Name overrides the default Database name provided by metadata.name. maxLength: 80 type: string retryInterval: + description: RetryInterval is the interval used to perform health check retries. type: string required: - mariaDbRef @@ -99,6 +105,7 @@ spec: description: DatabaseStatus defines the observed state of Database properties: conditions: + description: Conditions for the Database object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: diff --git a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/grants.yaml b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/grants.yaml index d440c3595..f2e9ae989 100644 --- a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/grants.yaml +++ b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/grants.yaml @@ -58,13 +58,17 @@ spec: properties: database: default: '*' + description: Database to use in the Grant. type: string grantOption: default: false + description: GrantOption to use in the Grant. type: boolean host: + description: Host to use in the Grant. type: string mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -89,20 +93,25 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic privileges: + description: Privileges to use in the Grant. items: type: string minItems: 1 type: array retryInterval: + description: RetryInterval is the interval used to perform health check retries. type: string table: default: '*' + description: Table to use in the Grant. type: string username: + description: Username to use in the Grant. type: string required: - mariaDbRef @@ -113,6 +122,7 @@ spec: description: GrantStatus defines the observed state of Grant properties: conditions: + description: Conditions for the Grant object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: diff --git a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/mariadbs.yaml b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/mariadbs.yaml index c1987e12d..95475216f 100644 --- a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/mariadbs.yaml +++ b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/mariadbs.yaml @@ -45,7 +45,7 @@ spec: description: MariaDBSpec defines the desired state of MariaDB properties: affinity: - description: Affinity is a group of affinity scheduling rules. + description: Affinity to be used in the Pod. properties: nodeAffinity: description: Describes node affinity scheduling rules for the pod. @@ -517,13 +517,15 @@ spec: type: object type: object args: + description: Args to be used in the Container. items: type: string type: array bootstrapFrom: + description: BootstrapFrom defines a source to bootstrap from. properties: backupRef: - description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. + description: BackupRef is a reference to a Backup object. properties: name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' @@ -531,9 +533,10 @@ spec: type: object x-kubernetes-map-type: atomic fileName: + description: FileName is the file within the source to be restored. type: string volume: - description: Represents the source of a volume to mount. Only one of its members may be specified. + description: Volume is a Kubernetes Volume object that contains a backup. properties: awsElasticBlockStore: description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' @@ -1477,55 +1480,75 @@ spec: type: object type: object command: + description: Command to be used in the Container. items: type: string type: array connection: + description: Connection defines templates to configure the general Connection object. properties: healthCheck: + description: HealthCheck to be used in the Connection. properties: interval: + description: Interval used to perform health checks. type: string retryInterval: + description: RetryInterval is the intervañ used to perform health check retries. type: string type: object params: additionalProperties: type: string + description: Params to be used in the Connection. type: object secretName: + description: SecretName to be used in the Connection. type: string secretTemplate: + description: SecretTemplate to be used in the Connection. properties: annotations: additionalProperties: type: string + description: Annotations to be added to the Secret object. type: object databaseKey: + description: DatabaseKey to be used in the Secret. type: string format: + description: Format to be used in the Secret. type: string hostKey: + description: HostKey to be used in the Secret. type: string key: + description: Key to be used in the Secret. type: string labels: additionalProperties: type: string + description: Labels to be added to the Secret object. type: object passwordKey: + description: PasswordKey to be used in the Secret. type: string portKey: + description: PortKey to be used in the Secret. type: string usernameKey: + description: UsernameKey to be used in the Secret. type: string type: object serviceName: + description: ServiceName to be used in the Connection. type: string type: object database: + description: Database is the database to be created on bootstrap. type: string env: + description: Env represents the environment variables to be injected in a container. items: description: EnvVar represents an environment variable present in a Container. properties: @@ -1609,6 +1632,7 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container. items: description: EnvFromSource represents the source of a set of ConfigMaps properties: @@ -1640,20 +1664,23 @@ spec: type: object type: array galera: - description: Galera allows you to enable multi-master HA via Galera in your MariaDB cluster. + description: Replication configures high availability via Galera. properties: agent: description: 'GaleraAgent is a sidecar agent that co-operates with mariadb-operator. More info: https://github.com/mariadb-operator/agent.' properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be injected in a container. items: description: EnvVar represents an environment variable present in a Container. properties: @@ -1737,6 +1764,7 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container. items: description: EnvFromSource represents the source of a set of ConfigMaps properties: @@ -1771,10 +1799,14 @@ spec: description: GracefulShutdownTimeout is the time we give to the agent container in order to gracefully terminate in-flight requests. type: string image: + description: Image name to be used by the MariaDB instances. The supported format is `:`. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to pull a container image + description: ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string kubernetesAuth: description: KubernetesAuth to be used by the agent container @@ -1787,7 +1819,7 @@ spec: type: boolean type: object livenessProbe: - description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -1889,11 +1921,12 @@ spec: type: integer type: object port: - description: Port to be used by the agent container + default: 5555 + description: Port where the agent will be listening for connections. format: int32 type: integer readinessProbe: - description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -1995,7 +2028,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." @@ -2032,7 +2065,7 @@ spec: type: object type: object securityContext: - description: SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. + description: SecurityContext holds security configuration that will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.' @@ -2119,6 +2152,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: @@ -2145,8 +2179,6 @@ spec: - name type: object type: array - required: - - image type: object enabled: description: Enabled is a flag to enable Galera. @@ -2155,14 +2187,17 @@ spec: description: 'InitContainer is an init container that co-operates with mariadb-operator. More info: https://github.com/mariadb-operator/init.' properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be injected in a container. items: description: EnvVar represents an environment variable present in a Container. properties: @@ -2246,6 +2281,7 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container. items: description: EnvFromSource represents the source of a set of ConfigMaps properties: @@ -2277,13 +2313,17 @@ spec: type: object type: array image: + description: Image name to be used by the MariaDB instances. The supported format is `:`. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to pull a container image + description: ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string livenessProbe: - description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -2385,7 +2425,7 @@ spec: type: integer type: object readinessProbe: - description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -2487,7 +2527,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." @@ -2524,7 +2564,7 @@ spec: type: object type: object securityContext: - description: SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. + description: SecurityContext holds security configuration that will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.' @@ -2611,6 +2651,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: @@ -2674,6 +2715,10 @@ spec: type: integer sst: description: 'SST is the Snapshot State Transfer used when new Pods join the cluster. More info: https://galeracluster.com/library/documentation/sst.html.' + enum: + - rsync + - mariabackup + - mysqldump type: string volumeClaimTemplate: description: VolumeClaimTemplate is a template for the PVC that will contain the Galera configuration files shared between the InitContainer, Agent and MariaDB. @@ -2686,6 +2731,7 @@ spec: annotations: additionalProperties: type: string + description: Annotations to be used in the PVC. type: object dataSource: description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.' @@ -2726,6 +2772,7 @@ spec: labels: additionalProperties: type: string + description: Labels to be used in the PVC. type: object resources: description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' @@ -2807,12 +2854,17 @@ spec: type: object type: object image: + description: Image name to be used by the MariaDB instances. The supported format is `:`. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to pull a container image + description: ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string imagePullSecrets: + description: ImagePullSecrets is the list of pull Secrets to be used to pull the image. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: @@ -2823,28 +2875,36 @@ spec: x-kubernetes-map-type: atomic type: array inheritMetadata: + description: InheritMetadata defines the metadata to be inherited by children resources. properties: annotations: additionalProperties: type: string + description: Annotations to be added to children resources. type: object labels: additionalProperties: type: string + description: Labels to be added to children resources. type: object type: object initContainers: + description: InitContainers to be used in the Pod. items: + description: Container object definition. properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be injected in a container. items: description: EnvVar represents an environment variable present in a Container. properties: @@ -2928,6 +2988,7 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container. items: description: EnvFromSource represents the source of a set of ConfigMaps properties: @@ -2959,13 +3020,17 @@ spec: type: object type: array image: + description: Image name to be used by the MariaDB instances. The supported format is `:`. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to pull a container image + description: ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string livenessProbe: - description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -3067,7 +3132,7 @@ spec: type: integer type: object readinessProbe: - description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -3169,7 +3234,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." @@ -3206,7 +3271,7 @@ spec: type: object type: object securityContext: - description: SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. + description: SecurityContext holds security configuration that will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.' @@ -3293,6 +3358,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: @@ -3324,7 +3390,7 @@ spec: type: object type: array livenessProbe: - description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -3426,18 +3492,26 @@ spec: type: integer type: object metrics: + description: Metrics configures metrics and how to scrape them. properties: + enabled: + description: Enabled is a flag to enable Metrics + type: boolean exporter: + description: Exporter defines the metrics exporter container. properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be injected in a container. items: description: EnvVar represents an environment variable present in a Container. properties: @@ -3521,6 +3595,7 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container. items: description: EnvFromSource represents the source of a set of ConfigMaps properties: @@ -3552,13 +3627,17 @@ spec: type: object type: array image: + description: Image name to be used by the MariaDB instances. The supported format is `:`. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to pull a container image + description: ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string livenessProbe: - description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -3661,10 +3740,11 @@ spec: type: object port: default: 9104 + description: Port where the exporter will be listening for connections. format: int32 type: integer readinessProbe: - description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -3766,7 +3846,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." @@ -3803,7 +3883,7 @@ spec: type: object type: object securityContext: - description: SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. + description: SecurityContext holds security configuration that will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.' @@ -3890,6 +3970,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: @@ -3916,16 +3997,18 @@ spec: - name type: object type: array - required: - - image type: object serviceMonitor: + description: ServiceMonitor defines the ServiceMonior object. properties: interval: + description: Interval for scraping metrics. type: string prometheusRelease: + description: PrometheusRelease is the release label to add to the ServiceMonitor object. type: string scrapeTimeout: + description: ScrapeTimeout defines the timeout for scraping metrics. type: string required: - prometheusRelease @@ -3935,9 +4018,10 @@ spec: - serviceMonitor type: object myCnf: + description: MyCnf allows to specify the my.cnf file mounted by Mariadb. type: string myCnfConfigMapKeyRef: - description: Selects a key from a ConfigMap. + description: MyCnfConfigMapKeyRef is a reference to the my.cnf config file provided via a ConfigMap. If not provided, it will be defaulted with reference to a ConfigMap with the contents of the MyCnf field. properties: key: description: The key to select. @@ -3955,9 +4039,10 @@ spec: nodeSelector: additionalProperties: type: string + description: NodeSelector to be used in the Pod. type: object passwordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: PasswordSecretKeyRef is a reference to the password of the initial user provided via a Secret. properties: key: description: The key of the secret to select from. Must be a valid secret key. @@ -3975,22 +4060,26 @@ spec: podAnnotations: additionalProperties: type: string + description: PodAnnotations to add to the Pods metadata. type: object podDisruptionBudget: + description: PodDisruptionBudget defines the budget for replica availability. properties: maxUnavailable: anyOf: - type: integer - type: string + description: MaxUnavailable defines the number of maximum unavailable Pods. x-kubernetes-int-or-string: true minAvailable: anyOf: - type: integer - type: string + description: MinAvailable defines the number of minimum available Pods. x-kubernetes-int-or-string: true type: object podSecurityContext: - description: PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext. + description: SecurityContext holds pod-level security attributes and common container settings. properties: fsGroup: description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: \n 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- \n If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows." @@ -4079,81 +4168,110 @@ spec: type: object port: default: 3306 + description: Port where the instances will be listening for connections. format: int32 type: integer primaryConnection: + description: PrimaryConnection defines templates to configure the primary Connection object. properties: healthCheck: + description: HealthCheck to be used in the Connection. properties: interval: + description: Interval used to perform health checks. type: string retryInterval: + description: RetryInterval is the intervañ used to perform health check retries. type: string type: object params: additionalProperties: type: string + description: Params to be used in the Connection. type: object secretName: + description: SecretName to be used in the Connection. type: string secretTemplate: + description: SecretTemplate to be used in the Connection. properties: annotations: additionalProperties: type: string + description: Annotations to be added to the Secret object. type: object databaseKey: + description: DatabaseKey to be used in the Secret. type: string format: + description: Format to be used in the Secret. type: string hostKey: + description: HostKey to be used in the Secret. type: string key: + description: Key to be used in the Secret. type: string labels: additionalProperties: type: string + description: Labels to be added to the Secret object. type: object passwordKey: + description: PasswordKey to be used in the Secret. type: string portKey: + description: PortKey to be used in the Secret. type: string usernameKey: + description: UsernameKey to be used in the Secret. type: string type: object serviceName: + description: ServiceName to be used in the Connection. type: string type: object primaryService: + description: PrimaryService defines templates to configure the primary Service object. properties: allocateLoadBalancerNodePorts: + description: AllocateLoadBalancerNodePorts Service field. type: boolean annotations: additionalProperties: type: string + description: Annotations to add to the Service metadata. type: object externalTrafficPolicy: - description: ServiceExternalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs. + description: ExternalTrafficPolicy Service field. type: string labels: additionalProperties: type: string + description: Labels to add to the Service metadata. type: object loadBalancerIP: + description: LoadBalancerIP Service field. type: string loadBalancerSourceRanges: + description: LoadBalancerSourceRanges Service field. items: type: string type: array sessionAffinity: - description: Session Affinity Type string + description: SessionAffinity Service field. type: string type: - description: Service Type string describes ingress methods for a service + default: ClusterIP + description: Type is the Service type. One of `ClusterIP`, `NodePort` or `LoadBalancer`. If not defined, it defaults to `ClusterIP`. + enum: + - ClusterIP + - NodePort + - LoadBalancer type: string type: object readinessProbe: - description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -4256,10 +4374,11 @@ spec: type: object replicas: default: 1 + description: Replicas indicates the number of instances. format: int32 type: integer replication: - description: Replication allows you to enable single-master HA via semi-synchronours replication in your MariaDB cluster. + description: Replication configures high availability via replication. properties: enabled: description: Enabled is a flag to enable Replication. @@ -4285,6 +4404,9 @@ spec: type: string gtid: description: 'Gtid indicates which Global Transaction ID should be used when connecting a replica to the master. See: https://mariadb.com/kb/en/gtid/#using-current_pos-vs-slave_pos.' + enum: + - CurrentPos + - SlavePos type: string replPasswordSecretKeyRef: description: ReplPasswordSecretKeyRef provides a reference to the Secret to use as password for the replication user. @@ -4307,6 +4429,9 @@ spec: type: string waitPoint: description: 'WaitPoint defines whether the transaction should wait for ACK before committing to the storage engine. More info: https://mariadb.com/kb/en/semisynchronous-replication/#rpl_semi_sync_master_wait_point.' + enum: + - AfterSync + - AfterCommit type: string type: object syncBinlog: @@ -4314,7 +4439,7 @@ spec: type: boolean type: object resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." @@ -4351,7 +4476,7 @@ spec: type: object type: object rootPasswordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: RootPasswordSecretKeyRef is a reference to a Secret key containing the root password. properties: key: description: The key of the secret to select from. Must be a valid secret key. @@ -4367,78 +4492,106 @@ spec: type: object x-kubernetes-map-type: atomic secondaryConnection: + description: SecondaryConnection defines templates to configure the secondary Connection object. properties: healthCheck: + description: HealthCheck to be used in the Connection. properties: interval: + description: Interval used to perform health checks. type: string retryInterval: + description: RetryInterval is the intervañ used to perform health check retries. type: string type: object params: additionalProperties: type: string + description: Params to be used in the Connection. type: object secretName: + description: SecretName to be used in the Connection. type: string secretTemplate: + description: SecretTemplate to be used in the Connection. properties: annotations: additionalProperties: type: string + description: Annotations to be added to the Secret object. type: object databaseKey: + description: DatabaseKey to be used in the Secret. type: string format: + description: Format to be used in the Secret. type: string hostKey: + description: HostKey to be used in the Secret. type: string key: + description: Key to be used in the Secret. type: string labels: additionalProperties: type: string + description: Labels to be added to the Secret object. type: object passwordKey: + description: PasswordKey to be used in the Secret. type: string portKey: + description: PortKey to be used in the Secret. type: string usernameKey: + description: UsernameKey to be used in the Secret. type: string type: object serviceName: + description: ServiceName to be used in the Connection. type: string type: object secondaryService: + description: SecondaryService defines templates to configure the secondary Service object. properties: allocateLoadBalancerNodePorts: + description: AllocateLoadBalancerNodePorts Service field. type: boolean annotations: additionalProperties: type: string + description: Annotations to add to the Service metadata. type: object externalTrafficPolicy: - description: ServiceExternalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs. + description: ExternalTrafficPolicy Service field. type: string labels: additionalProperties: type: string + description: Labels to add to the Service metadata. type: object loadBalancerIP: + description: LoadBalancerIP Service field. type: string loadBalancerSourceRanges: + description: LoadBalancerSourceRanges Service field. items: type: string type: array sessionAffinity: - description: Session Affinity Type string + description: SessionAffinity Service field. type: string type: - description: Service Type string describes ingress methods for a service + default: ClusterIP + description: Type is the Service type. One of `ClusterIP`, `NodePort` or `LoadBalancer`. If not defined, it defaults to `ClusterIP`. + enum: + - ClusterIP + - NodePort + - LoadBalancer type: string type: object securityContext: - description: SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. + description: SecurityContext holds security configuration that will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.' @@ -4525,45 +4678,61 @@ spec: type: object type: object service: + description: Service defines templates to configure the general Service object. properties: allocateLoadBalancerNodePorts: + description: AllocateLoadBalancerNodePorts Service field. type: boolean annotations: additionalProperties: type: string + description: Annotations to add to the Service metadata. type: object externalTrafficPolicy: - description: ServiceExternalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs. + description: ExternalTrafficPolicy Service field. type: string labels: additionalProperties: type: string + description: Labels to add to the Service metadata. type: object loadBalancerIP: + description: LoadBalancerIP Service field. type: string loadBalancerSourceRanges: + description: LoadBalancerSourceRanges Service field. items: type: string type: array sessionAffinity: - description: Session Affinity Type string + description: SessionAffinity Service field. type: string type: - description: Service Type string describes ingress methods for a service + default: ClusterIP + description: Type is the Service type. One of `ClusterIP`, `NodePort` or `LoadBalancer`. If not defined, it defaults to `ClusterIP`. + enum: + - ClusterIP + - NodePort + - LoadBalancer type: string type: object sidecarContainers: + description: SidecarContainers to be used in the Pod. items: + description: Container object definition. properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be injected in a container. items: description: EnvVar represents an environment variable present in a Container. properties: @@ -4647,6 +4816,7 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container. items: description: EnvFromSource represents the source of a set of ConfigMaps properties: @@ -4678,13 +4848,17 @@ spec: type: object type: array image: + description: Image name to be used by the MariaDB instances. The supported format is `:`. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to pull a container image + description: ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string livenessProbe: - description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -4786,7 +4960,7 @@ spec: type: integer type: object readinessProbe: - description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -4888,7 +5062,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." @@ -4925,7 +5099,7 @@ spec: type: object type: object securityContext: - description: SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. + description: SecurityContext holds security configuration that will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.' @@ -5012,6 +5186,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: @@ -5043,6 +5218,7 @@ spec: type: object type: array tolerations: + description: Tolerations to be used in the Pod. items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: @@ -5065,7 +5241,7 @@ spec: type: object type: array updateStrategy: - description: StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy. + description: PodDisruptionBudget defines the update strategy for the StatefulSet object. properties: rollingUpdate: description: RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. @@ -5086,8 +5262,10 @@ spec: type: string type: object username: + description: Username is the username of the user to be created on bootstrap. type: string volumeClaimTemplate: + description: VolumeClaimTemplate provides a template to define the Pod PVCs. properties: accessModes: description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' @@ -5097,6 +5275,7 @@ spec: annotations: additionalProperties: type: string + description: Annotations to be used in the PVC. type: object dataSource: description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.' @@ -5137,6 +5316,7 @@ spec: labels: additionalProperties: type: string + description: Labels to be used in the PVC. type: object resources: description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' @@ -5217,6 +5397,7 @@ spec: type: string type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. properties: @@ -5244,6 +5425,7 @@ spec: type: object type: array volumes: + description: Volumes to be used in the Pod. items: description: Volume represents a named volume in a pod that may be accessed by any container in the pod. properties: @@ -6194,14 +6376,13 @@ spec: type: object type: array required: - - image - - rootPasswordSecretKeyRef - volumeClaimTemplate type: object status: description: MariaDBStatus defines the observed state of MariaDB properties: conditions: + description: Conditions for the Mariadb object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: @@ -6245,11 +6426,13 @@ spec: type: object type: array currentPrimary: + description: CurrentPrimary is the primary Pod. type: string currentPrimaryPodIndex: + description: CurrentPrimaryPodIndex is the primary Pod index. type: integer galeraRecovery: - description: GaleraRecoveryStatus is the current state of the Galera recovery process. + description: GaleraRecovery is the Galera recovery current state. properties: bootstrap: description: Bootstrap indicates when and in which Pod the cluster bootstrap process has been performed. diff --git a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/restores.yaml b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/restores.yaml index 73c3dd9ba..4d7d3873b 100644 --- a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/restores.yaml +++ b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/restores.yaml @@ -45,7 +45,7 @@ spec: description: RestoreSpec defines the desired state of restore properties: affinity: - description: Affinity is a group of affinity scheduling rules. + description: Affinity to be used in the Restore Pod. properties: nodeAffinity: description: Describes node affinity scheduling rules for the pod. @@ -518,10 +518,11 @@ spec: type: object backoffLimit: default: 5 + description: BackoffLimit defines the maximum number of attempts to successfully perform a Backup. format: int32 type: integer backupRef: - description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. + description: BackupRef is a reference to a Backup object. properties: name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' @@ -529,8 +530,10 @@ spec: type: object x-kubernetes-map-type: atomic fileName: + description: FileName is the file within the source to be restored. type: string mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -555,15 +558,17 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic nodeSelector: additionalProperties: type: string + description: NodeSelector to be used in the Restore Pod. type: object resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." @@ -601,9 +606,14 @@ spec: type: object restartPolicy: default: OnFailure - description: RestartPolicy describes how the container should be restarted. Only one of the following restart policies may be specified. If none of the following policies is specified, the default one is RestartPolicyAlways. + description: RestartPolicy to be added to the Backup Job. + enum: + - Always + - OnFailure + - Never type: string tolerations: + description: Tolerations to be used in the Restore Pod. items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: @@ -626,7 +636,7 @@ spec: type: object type: array volume: - description: Represents the source of a volume to mount. Only one of its members may be specified. + description: Volume is a Kubernetes Volume object that contains a backup. properties: awsElasticBlockStore: description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' @@ -1575,6 +1585,7 @@ spec: description: RestoreStatus defines the observed state of restore properties: conditions: + description: Conditions for the Restore object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: diff --git a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/sqljobs.yaml b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/sqljobs.yaml index f5150f61f..8e72bb531 100644 --- a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/sqljobs.yaml +++ b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/sqljobs.yaml @@ -45,7 +45,7 @@ spec: description: SqlJobSpec defines the desired state of SqlJob properties: affinity: - description: Affinity is a group of affinity scheduling rules. + description: Affinity to be used in the SqlJob Pod. properties: nodeAffinity: description: Describes node affinity scheduling rules for the pod. @@ -518,11 +518,14 @@ spec: type: object backoffLimit: default: 5 + description: BackoffLimit defines the maximum number of attempts to successfully execute a SqlJob. format: int32 type: integer database: + description: Username to be used when executing the SqlJob. type: string dependsOn: + description: DependsOn defines dependencies with other SqlJob objectecs. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: @@ -533,6 +536,7 @@ spec: x-kubernetes-map-type: atomic type: array mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -557,15 +561,17 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic nodeSelector: additionalProperties: type: string + description: NodeSelector to be used in the SqlJob Pod. type: object passwordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: UserPasswordSecretKeyRef is a reference to the impersonated user's password to be used when executing the SqlJob. properties: key: description: The key of the secret to select from. Must be a valid secret key. @@ -581,7 +587,7 @@ spec: type: object x-kubernetes-map-type: atomic resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." @@ -619,22 +625,30 @@ spec: type: object restartPolicy: default: OnFailure - description: RestartPolicy describes how the container should be restarted. Only one of the following restart policies may be specified. If none of the following policies is specified, the default one is RestartPolicyAlways. + description: RestartPolicy to be added to the SqlJob Pod. + enum: + - Always + - OnFailure + - Never type: string schedule: + description: Schedule defines when the SqlJob will be executed. properties: cron: + description: Cron is a cron expression that defines the schedule. type: string suspend: default: false + description: Suspend defines whether the schedule is active or not. type: boolean required: - cron type: object sql: + description: Sql is the script to be executed by the SqlJob. type: string sqlConfigMapKeyRef: - description: Selects a key from a ConfigMap. + description: SqlConfigMapKeyRef is a reference to a ConfigMap containing the Sql script. It is defaulted to a ConfigMap with the contents of the Sql field. properties: key: description: The key to select. @@ -650,6 +664,7 @@ spec: type: object x-kubernetes-map-type: atomic tolerations: + description: Tolerations to be used in the SqlJob Pod. items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: @@ -672,6 +687,7 @@ spec: type: object type: array username: + description: Username to be impersonated when executing the SqlJob. type: string required: - mariaDbRef @@ -682,6 +698,7 @@ spec: description: SqlJobStatus defines the observed state of SqlJob properties: conditions: + description: Conditions for the SqlJob object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: diff --git a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/users.yaml b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/users.yaml index 9a35236a2..d5ab59867 100644 --- a/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/users.yaml +++ b/crd-catalog/mariadb-operator/mariadb-operator/mariadb.mmontes.io/v1alpha1/users.yaml @@ -48,9 +48,11 @@ spec: description: UserSpec defines the desired state of User properties: host: + description: Host related to the User. maxLength: 255 type: string mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -75,18 +77,21 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic maxUserConnections: default: 10 + description: MaxUserConnections defines the maximum number of connections that the User can have. format: int32 type: integer name: + description: Name overrides the default name provided by metadata.name. maxLength: 80 type: string passwordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: PasswordSecretKeyRef is a reference to the password to be used by the User. properties: key: description: The key of the secret to select from. Must be a valid secret key. @@ -102,6 +107,7 @@ spec: type: object x-kubernetes-map-type: atomic retryInterval: + description: RetryInterval is the interval used to perform health check retries. type: string required: - mariaDbRef @@ -111,6 +117,7 @@ spec: description: UserStatus defines the observed state of User properties: conditions: + description: Conditions for the User object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, \n type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" properties: diff --git a/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta1/flowcollectors.yaml b/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta1/flowcollectors.yaml index 3fd31eb43..001dc4471 100644 --- a/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta1/flowcollectors.yaml +++ b/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta1/flowcollectors.yaml @@ -76,7 +76,7 @@ spec: type: string type: array features: - description: 'List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are:
- `PacketDrop`: enable the packets drop flows logging feature. This feature requires mounting the kernel debug filesystem, so the eBPF pod has to run as privileged. If the `spec.agent.eBPF.privileged` parameter is not set, an error is reported.
- `DNSTracking`: enable the DNS tracking feature.
- `FlowRTT` [unsupported (*)]: enable flow latency (RTT) calculations in the eBPF agent during TCP handshakes. This feature better works with `sampling` set to 1.
' + description: 'List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are:
- `PacketDrop`: enable the packets drop flows logging feature. This feature requires mounting the kernel debug filesystem, so the eBPF pod has to run as privileged. If the `spec.agent.ebpf.privileged` parameter is not set, an error is reported.
- `DNSTracking`: enable the DNS tracking feature.
- `FlowRTT` [unsupported (*)]: enable flow latency (RTT) calculations in the eBPF agent during TCP handshakes. This feature better works with `sampling` set to 1.
' items: description: Agent feature, can be one of:
- `PacketDrop`, to track packet drops.
- `DNSTracking`, to track specific information on DNS traffic.
- `FlowRTT`, to track TCP latency. [Unsupported (*)].
enum: diff --git a/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta2/flowcollectors.yaml b/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta2/flowcollectors.yaml index 82e6db7dd..6a3376a48 100644 --- a/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta2/flowcollectors.yaml +++ b/crd-catalog/netobserv/network-observability-operator/flows.netobserv.io/v1beta2/flowcollectors.yaml @@ -46,7 +46,7 @@ spec: description: Agent configuration for flows extraction. properties: ebpf: - description: '`ebpf` describes the settings related to the eBPF-based flow reporter when `spec.agent.type` is set to `EBPF`.' + description: '`ebpf` describes the settings related to the eBPF-based flow reporter when `spec.agent.type` is set to `eBPF`.' properties: cacheActiveTimeout: default: 5s @@ -76,9 +76,9 @@ spec: type: string type: array features: - description: 'List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are:
- `PacketDrop`: enable the packets drop flows logging feature. This feature requires mounting the kernel debug filesystem, so the eBPF pod has to run as privileged. If the `spec.agent.eBPF.privileged` parameter is not set, an error is reported.
- `DNSTracking`: enable the DNS tracking feature.
- `FlowRTT` [unsupported (*)]: enable flow latency (RTT) calculations in the eBPF agent during TCP handshakes. This feature better works with `sampling` set to 1.
' + description: 'List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are:
- `PacketDrop`: enable the packets drop flows logging feature. This feature requires mounting the kernel debug filesystem, so the eBPF pod has to run as privileged. If the `spec.agent.ebpf.privileged` parameter is not set, an error is reported.
- `DNSTracking`: enable the DNS tracking feature.
- `FlowRTT`: enable flow latency (RTT) calculations in the eBPF agent during TCP handshakes. This feature better works with `sampling` set to 1.
' items: - description: Agent feature, can be one of:
- `PacketDrop`, to track packet drops.
- `DNSTracking`, to track specific information on DNS traffic.
- `FlowRTT`, to track TCP latency. [Unsupported (*)].
+ description: Agent feature, can be one of:
- `PacketDrop`, to track packet drops.
- `DNSTracking`, to track specific information on DNS traffic.
- `FlowRTT`, to track TCP latency.
enum: - PacketDrop - DNSTracking @@ -217,10 +217,10 @@ spec: type: integer type: object type: - default: EBPF - description: '`type` selects the flows tracing agent. Possible values are:
- `EBPF` (default) to use NetObserv eBPF agent.
- `IPFIX` [deprecated (*)] - to use the legacy IPFIX collector.
`EBPF` is recommended as it offers better performances and should work regardless of the CNI installed on the cluster. `IPFIX` works with OVN-Kubernetes CNI (other CNIs could work if they support exporting IPFIX, but they would require manual configuration).' + default: eBPF + description: '`type` selects the flows tracing agent. Possible values are:
- `eBPF` (default) to use NetObserv eBPF agent.
- `IPFIX` [deprecated (*)] - to use the legacy IPFIX collector.
`eBPF` is recommended as it offers better performances and should work regardless of the CNI installed on the cluster. `IPFIX` works with OVN-Kubernetes CNI (other CNIs could work if they support exporting IPFIX, but they would require manual configuration).' enum: - - EBPF + - eBPF - IPFIX type: string type: object @@ -566,11 +566,11 @@ spec: format: int32 type: integer status: - default: DISABLED - description: '`status` describes the desired status regarding deploying an horizontal pod autoscaler.
- `DISABLED` does not deploy an horizontal pod autoscaler.
- `ENABLED` deploys an horizontal pod autoscaler.
' + default: Disabled + description: '`status` describes the desired status regarding deploying an horizontal pod autoscaler.
- `Disabled` does not deploy an horizontal pod autoscaler.
- `Enabled` deploys an horizontal pod autoscaler.
' enum: - - DISABLED - - ENABLED + - Disabled + - Enabled type: string type: object enable: @@ -713,11 +713,11 @@ spec: type: object type: object deploymentModel: - default: DIRECT - description: '`deploymentModel` defines the desired type of deployment for flow processing. Possible values are:
- `DIRECT` (default) to make the flow processor listening directly from the agents.
- `KAFKA` to make flows sent to a Kafka pipeline before consumption by the processor.
Kafka can provide better scalability, resiliency, and high availability (for more details, see https://www.redhat.com/en/topics/integration/what-is-apache-kafka).' + default: Direct + description: '`deploymentModel` defines the desired type of deployment for flow processing. Possible values are:
- `Direct` (default) to make the flow processor listening directly from the agents.
- `Kafka` to make flows sent to a Kafka pipeline before consumption by the processor.
Kafka can provide better scalability, resiliency, and high availability (for more details, see https://www.redhat.com/en/topics/integration/what-is-apache-kafka).' enum: - - DIRECT - - KAFKA + - Direct + - Kafka type: string exporters: description: '`exporters` define additional optional exporters for custom consumption or storage.' @@ -795,12 +795,12 @@ spec: type: string type: object type: - default: DISABLED - description: Type of SASL authentication to use, or `DISABLED` if SASL is not used + default: Disabled + description: Type of SASL authentication to use, or `Disabled` if SASL is not used enum: - - DISABLED - - PLAIN - - SCRAM-SHA512 + - Disabled + - Plain + - ScramSHA512 type: string type: object tls: @@ -870,9 +870,9 @@ spec: - topic type: object type: - description: '`type` selects the type of exporters. The available options are `KAFKA` and `IPFIX`.' + description: '`type` selects the type of exporters. The available options are `Kafka` and `IPFIX`.' enum: - - KAFKA + - Kafka - IPFIX type: string required: @@ -880,7 +880,7 @@ spec: type: object type: array kafka: - description: Kafka configuration, allowing to use Kafka as a broker as part of the flow collection pipeline. Available when the `spec.deploymentModel` is `KAFKA`. + description: Kafka configuration, allowing to use Kafka as a broker as part of the flow collection pipeline. Available when the `spec.deploymentModel` is `Kafka`. properties: address: default: '' @@ -930,12 +930,12 @@ spec: type: string type: object type: - default: DISABLED - description: Type of SASL authentication to use, or `DISABLED` if SASL is not used + default: Disabled + description: Type of SASL authentication to use, or `Disabled` if SASL is not used enum: - - DISABLED - - PLAIN - - SCRAM-SHA512 + - Disabled + - Plain + - ScramSHA512 type: string type: object tls: @@ -1036,12 +1036,12 @@ spec: description: Loki configuration for "Manual" mode. This is the most flexible configuration. It is ignored for other modes. properties: authToken: - default: DISABLED - description: '`authToken` describes the way to get a token to authenticate to Loki.
- `DISABLED` does not send any token with the request.
- `FORWARD` forwards the user token for authorization.
- `HOST` [deprecated (*)] - uses the local pod service account to authenticate to Loki.
When using the Loki Operator, this must be set to `FORWARD`.' + default: Disabled + description: '`authToken` describes the way to get a token to authenticate to Loki.
- `Disabled` does not send any token with the request.
- `Forward` forwards the user token for authorization.
- `Host` [deprecated (*)] - uses the local pod service account to authenticate to Loki.
When using the Loki Operator, this must be set to `Forward`.' enum: - - DISABLED - - HOST - - FORWARD + - Disabled + - Host + - Forward type: string ingesterUrl: default: http://loki:3100/ @@ -1748,11 +1748,11 @@ spec: format: int32 type: integer status: - default: DISABLED - description: '`status` describes the desired status regarding deploying an horizontal pod autoscaler.
- `DISABLED` does not deploy an horizontal pod autoscaler.
- `ENABLED` deploys an horizontal pod autoscaler.
' + default: Disabled + description: '`status` describes the desired status regarding deploying an horizontal pod autoscaler.
- `Disabled` does not deploy an horizontal pod autoscaler.
- `Enabled` deploys an horizontal pod autoscaler.
' enum: - - DISABLED - - ENABLED + - Disabled + - Enabled type: string type: object kafkaConsumerBatchSize: @@ -1782,13 +1782,13 @@ spec: - panic type: string logTypes: - default: FLOWS - description: '`logTypes` defines the desired record types to generate. Possible values are:
- `FLOWS` (default) to export regular network flows
- `CONVERSATIONS` to generate events for started conversations, ended conversations as well as periodic "tick" updates
- `ENDED_CONVERSATIONS` to generate only ended conversations events
- `ALL` to generate both network flows and all conversations events
' + default: Flows + description: '`logTypes` defines the desired record types to generate. Possible values are:
- `Flows` (default) to export regular network flows
- `Conversations` to generate events for started conversations, ended conversations as well as periodic "tick" updates
- `EndedConversations` to generate only ended conversations events
- `All` to generate both network flows and all conversations events
' enum: - - FLOWS - - CONVERSATIONS - - ENDED_CONVERSATIONS - - ALL + - Flows + - Conversations + - EndedConversations + - All type: string metrics: description: '`Metrics` define the processor configuration regarding metrics' @@ -1854,7 +1854,7 @@ spec: description: '`insecureSkipVerify` allows skipping client-side verification of the provided certificate. If set to `true`, the `providedCaFile` field is ignored.' type: boolean provided: - description: TLS configuration when `type` is set to `PROVIDED`. + description: TLS configuration when `type` is set to `Provided`. properties: certFile: description: '`certFile` defines the path to the certificate file name within the config map or secret' @@ -1877,7 +1877,7 @@ spec: type: string type: object providedCaFile: - description: Reference to the CA file when `type` is set to `PROVIDED`. + description: Reference to the CA file when `type` is set to `Provided`. properties: file: description: File name within the config map or secret @@ -1897,12 +1897,12 @@ spec: type: string type: object type: - default: DISABLED - description: Select the type of TLS configuration:
- `DISABLED` (default) to not configure TLS for the endpoint. - `PROVIDED` to manually provide cert file and a key file. - `AUTO` to use OpenShift auto generated certificate using annotations. + default: Disabled + description: Select the type of TLS configuration:
- `Disabled` (default) to not configure TLS for the endpoint. - `Provided` to manually provide cert file and a key file. - `Auto` to use OpenShift auto generated certificate using annotations. enum: - - DISABLED - - PROVIDED - - AUTO + - Disabled + - Provided + - Auto type: string type: object type: object diff --git a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/transportservers.yaml b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/transportservers.yaml index 5e67cf501..68611a357 100644 --- a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/transportservers.yaml +++ b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/transportservers.yaml @@ -96,6 +96,10 @@ spec: items: description: TransportServerUpstream defines an upstream. properties: + backup: + type: string + backupPort: + type: integer failTimeout: type: string healthCheck: diff --git a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/virtualserverroutes.yaml b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/virtualserverroutes.yaml index 08824df55..9273ae815 100644 --- a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/virtualserverroutes.yaml +++ b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/virtualserverroutes.yaml @@ -464,6 +464,10 @@ spec: items: description: Upstream defines an upstream. properties: + backup: + type: string + backupPort: + type: integer buffer-size: type: string buffering: diff --git a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/virtualservers.yaml b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/virtualservers.yaml index 6824b07aa..9218c2df2 100644 --- a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/virtualservers.yaml +++ b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/virtualservers.yaml @@ -561,6 +561,10 @@ spec: items: description: Upstream defines an upstream. properties: + backup: + type: string + backupPort: + type: integer buffer-size: type: string buffering: diff --git a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1alpha1/transportservers.yaml b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1alpha1/transportservers.yaml index c1ff0b9c0..e5686ba90 100644 --- a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1alpha1/transportservers.yaml +++ b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1alpha1/transportservers.yaml @@ -96,6 +96,10 @@ spec: items: description: TransportServerUpstream defines an upstream. properties: + backup: + type: string + backupPort: + type: integer failTimeout: type: string healthCheck: diff --git a/crd-catalog/openshift/api/config.openshift.io/v1/infrastructures.yaml b/crd-catalog/openshift/api/config.openshift.io/v1/infrastructures.yaml index c502215b4..8f33ea0d1 100644 --- a/crd-catalog/openshift/api/config.openshift.io/v1/infrastructures.yaml +++ b/crd-catalog/openshift/api/config.openshift.io/v1/infrastructures.yaml @@ -66,6 +66,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic type: object azure: description: Azure contains settings specific to the Azure infrastructure provider. @@ -337,6 +338,7 @@ spec: maxItems: 1 minItems: 1 type: array + x-kubernetes-list-type: atomic resourcePool: description: resourcePool is the absolute path of the resource pool where virtual machines will be created. The absolute path is of the form //host//Resources/. The maximum length of the path is 2048 characters. maxLength: 2048 @@ -361,6 +363,9 @@ spec: - zone type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map nodeNetworking: description: nodeNetworking contains the definition of internal and external network constraints for assigning the node's networking. If this field is omitted, networking defaults to the legacy address selection behavior which is to only support a single address and return the first one found. properties: @@ -373,6 +378,7 @@ spec: format: cidr type: string type: array + x-kubernetes-list-type: atomic network: description: network VirtualMachine's VM Network names that will be used to when searching for status.addresses fields. Note that if internal.networkSubnetCIDR and external.networkSubnetCIDR are not set, then the vNIC associated to this network must only have a single IP address assigned to it. The available networks (port groups) can be listed using `govc ls 'network/*'` type: string @@ -382,6 +388,7 @@ spec: format: cidr type: string type: array + x-kubernetes-list-type: set type: object internal: description: internal represents the network configuration of the node that is routable only within the cluster. @@ -392,6 +399,7 @@ spec: format: cidr type: string type: array + x-kubernetes-list-type: atomic network: description: network VirtualMachine's VM Network names that will be used to when searching for status.addresses fields. Note that if internal.networkSubnetCIDR and external.networkSubnetCIDR are not set, then the vNIC associated to this network must only have a single IP address assigned to it. The available networks (port groups) can be listed using `govc ls 'network/*'` type: string @@ -401,6 +409,7 @@ spec: format: cidr type: string type: array + x-kubernetes-list-type: set type: object type: object vcenters: @@ -414,6 +423,7 @@ spec: type: string minItems: 1 type: array + x-kubernetes-list-type: set port: description: port is the TCP port that will be used to communicate to the vCenter endpoint. When omitted, this means the user has no opinion and it is up to the platform to choose a sensible default, which is subject to change over time. format: int32 @@ -435,6 +445,7 @@ spec: maxItems: 1 minItems: 0 type: array + x-kubernetes-list-type: atomic type: object type: object type: object @@ -566,6 +577,7 @@ spec: type: object maxItems: 25 type: array + x-kubernetes-list-type: atomic serviceEndpoints: description: ServiceEndpoints list contains custom endpoints which will override default service endpoint of AWS Services. There must be only one ServiceEndpoint for a service. items: @@ -581,6 +593,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic type: object azure: description: Azure contains settings specific to the Azure infrastructure provider. @@ -627,6 +640,7 @@ spec: type: object maxItems: 10 type: array + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: resourceTags are immutable and may only be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) @@ -647,6 +661,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. \n Deprecated: Use IngressIPs instead." type: string @@ -657,6 +672,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for BareMetal deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster. type: string @@ -781,6 +797,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. \n Deprecated: Use IngressIPs instead." type: string @@ -791,6 +808,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set type: object openstack: description: OpenStack contains settings specific to the OpenStack infrastructure provider. @@ -805,6 +823,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set cloudName: description: cloudName is the name of the desired OpenStack cloud in the client configuration file (`clouds.yaml`). type: string @@ -818,6 +837,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set loadBalancer: default: type: OpenShiftManagedDefault @@ -851,6 +871,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. \n Deprecated: Use IngressIPs instead." type: string @@ -861,6 +882,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set nodeDNSIP: description: 'deprecated: as of 4.6, this field is no longer set or honored. It will be removed in a future release.' type: string @@ -904,6 +926,9 @@ spec: - url type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map zone: description: 'zone holds the default zone for the new Power VS resources created by the cluster. Note: Currently only single-zone OCP clusters are supported' type: string @@ -945,6 +970,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. \n Deprecated: Use IngressIPs instead." type: string @@ -955,6 +981,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for vSphere deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster. type: string diff --git a/crd-catalog/openshift/api/machineconfiguration.openshift.io/v1/controllerconfigs.yaml b/crd-catalog/openshift/api/machineconfiguration.openshift.io/v1/controllerconfigs.yaml index 4aa673c1a..3d6ae10d8 100644 --- a/crd-catalog/openshift/api/machineconfiguration.openshift.io/v1/controllerconfigs.yaml +++ b/crd-catalog/openshift/api/machineconfiguration.openshift.io/v1/controllerconfigs.yaml @@ -240,6 +240,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic type: object azure: description: Azure contains settings specific to the Azure infrastructure provider. @@ -507,6 +508,7 @@ spec: maxItems: 1 minItems: 1 type: array + x-kubernetes-list-type: atomic resourcePool: description: resourcePool is the absolute path of the resource pool where virtual machines will be created. The absolute path is of the form //host//Resources/. The maximum length of the path is 2048 characters. maxLength: 2048 @@ -531,6 +533,9 @@ spec: - zone type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map nodeNetworking: description: nodeNetworking contains the definition of internal and external network constraints for assigning the node's networking. If this field is omitted, networking defaults to the legacy address selection behavior which is to only support a single address and return the first one found. properties: @@ -542,6 +547,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic network: description: network VirtualMachine's VM Network names that will be used to when searching for status.addresses fields. Note that if internal.networkSubnetCIDR and external.networkSubnetCIDR are not set, then the vNIC associated to this network must only have a single IP address assigned to it. The available networks (port groups) can be listed using `govc ls 'network/*'` type: string @@ -550,6 +556,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: set type: object internal: description: internal represents the network configuration of the node that is routable only within the cluster. @@ -559,6 +566,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic network: description: network VirtualMachine's VM Network names that will be used to when searching for status.addresses fields. Note that if internal.networkSubnetCIDR and external.networkSubnetCIDR are not set, then the vNIC associated to this network must only have a single IP address assigned to it. The available networks (port groups) can be listed using `govc ls 'network/*'` type: string @@ -567,6 +575,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: set type: object type: object vcenters: @@ -580,6 +589,7 @@ spec: type: string minItems: 1 type: array + x-kubernetes-list-type: set port: description: port is the TCP port that will be used to communicate to the vCenter endpoint. When omitted, this means the user has no opinion and it is up to the platform to choose a sensible default, which is subject to change over time. format: int32 @@ -597,6 +607,7 @@ spec: maxItems: 1 minItems: 0 type: array + x-kubernetes-list-type: atomic type: object type: object type: object @@ -728,6 +739,7 @@ spec: type: object maxItems: 25 type: array + x-kubernetes-list-type: atomic serviceEndpoints: description: ServiceEndpoints list contains custom endpoints which will override default service endpoint of AWS Services. There must be only one ServiceEndpoint for a service. items: @@ -743,6 +755,7 @@ spec: type: string type: object type: array + x-kubernetes-list-type: atomic type: object azure: description: Azure contains settings specific to the Azure infrastructure provider. @@ -789,6 +802,7 @@ spec: type: object maxItems: 10 type: array + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: resourceTags are immutable and may only be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) @@ -809,6 +823,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. \n Deprecated: Use IngressIPs instead." type: string @@ -819,6 +834,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for BareMetal deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster. type: string @@ -943,6 +959,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. \n Deprecated: Use IngressIPs instead." type: string @@ -953,6 +970,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set type: object openstack: description: OpenStack contains settings specific to the OpenStack infrastructure provider. @@ -967,6 +985,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set cloudName: description: cloudName is the name of the desired OpenStack cloud in the client configuration file (`clouds.yaml`). type: string @@ -980,6 +999,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set loadBalancer: default: type: OpenShiftManagedDefault @@ -1013,6 +1033,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. \n Deprecated: Use IngressIPs instead." type: string @@ -1023,6 +1044,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set nodeDNSIP: description: 'deprecated: as of 4.6, this field is no longer set or honored. It will be removed in a future release.' type: string @@ -1066,6 +1088,9 @@ spec: - url type: object type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map zone: description: 'zone holds the default zone for the new Power VS resources created by the cluster. Note: Currently only single-zone OCP clusters are supported' type: string @@ -1107,6 +1132,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. \n Deprecated: Use IngressIPs instead." type: string @@ -1117,6 +1143,7 @@ spec: type: string maxItems: 2 type: array + x-kubernetes-list-type: set nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for vSphere deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster. type: string diff --git a/crd-catalog/otterize/helm-charts/k8s.otterize.com/v1alpha2/clientintents.yaml b/crd-catalog/otterize/helm-charts/k8s.otterize.com/v1alpha2/clientintents.yaml index da885cf9f..e6f8d50f7 100644 --- a/crd-catalog/otterize/helm-charts/k8s.otterize.com/v1alpha2/clientintents.yaml +++ b/crd-catalog/otterize/helm-charts/k8s.otterize.com/v1alpha2/clientintents.yaml @@ -62,8 +62,6 @@ spec: type: string required: - databaseName - - operations - - table type: object type: array name: diff --git a/crd-catalog/otterize/helm-charts/k8s.otterize.com/v1alpha3/clientintents.yaml b/crd-catalog/otterize/helm-charts/k8s.otterize.com/v1alpha3/clientintents.yaml index a8f013072..df39195f7 100644 --- a/crd-catalog/otterize/helm-charts/k8s.otterize.com/v1alpha3/clientintents.yaml +++ b/crd-catalog/otterize/helm-charts/k8s.otterize.com/v1alpha3/clientintents.yaml @@ -89,8 +89,6 @@ spec: type: string required: - databaseName - - operations - - table type: object type: array kafkaTopics: diff --git a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/alertmanagers.yaml b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/alertmanagers.yaml index e34b0cdb9..851cfdd62 100644 --- a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/alertmanagers.yaml +++ b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/alertmanagers.yaml @@ -1043,7 +1043,7 @@ spec: description: 'AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod. If the service account has `automountServiceAccountToken: true`, set the field to `false` to opt out of automounting API credentials.' type: boolean baseImage: - description: 'Base image that is used to deploy pods, without tag. Deprecated: use ''image'' instead' + description: 'Base image that is used to deploy pods, without tag. Deprecated: use ''image'' instead.' type: string clusterAdvertiseAddress: description: 'ClusterAdvertiseAddress is the explicit address to advertise in cluster. Needs to be provided for non RFC1918 [1] (public) addresses. [1] RFC1918: https://tools.ietf.org/html/rfc1918' @@ -2960,13 +2960,13 @@ spec: description: ServiceAccountName is the name of the ServiceAccount to use to run the Prometheus Pods. type: string sha: - description: 'SHA of Alertmanager container image to be deployed. Defaults to the value of `version`. Similar to a tag, but the SHA explicitly deploys an immutable container image. Version and Tag are ignored if SHA is set. Deprecated: use ''image'' instead. The image digest can be specified as part of the image URL.' + description: 'SHA of Alertmanager container image to be deployed. Defaults to the value of `version`. Similar to a tag, but the SHA explicitly deploys an immutable container image. Version and Tag are ignored if SHA is set. Deprecated: use ''image'' instead. The image digest can be specified as part of the image URL.' type: string storage: description: Storage is the definition of how storage will be used by the Alertmanager instances. properties: disableMountSubPath: - description: '*Deprecated: subPath usage will be removed in a future release.*' + description: 'Deprecated: subPath usage will be removed in a future release.' type: boolean emptyDir: description: 'EmptyDirVolumeSource to be used by the StatefulSet. If specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir' @@ -3266,7 +3266,7 @@ spec: type: string type: object status: - description: '*Deprecated: this field is never set.*' + description: 'Deprecated: this field is never set.' properties: accessModes: description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' @@ -3334,7 +3334,7 @@ spec: type: object type: object tag: - description: 'Tag of Alertmanager container image to be deployed. Defaults to the value of `version`. Version is ignored if Tag is set. Deprecated: use ''image'' instead. The image tag can be specified as part of the image URL.' + description: 'Tag of Alertmanager container image to be deployed. Defaults to the value of `version`. Version is ignored if Tag is set. Deprecated: use ''image'' instead. The image tag can be specified as part of the image URL.' type: string tolerations: description: If specified, the pod's tolerations. diff --git a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/prometheuses.yaml b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/prometheuses.yaml index b9dcdc3e6..477ad8589 100644 --- a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/prometheuses.yaml +++ b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/prometheuses.yaml @@ -667,7 +667,7 @@ spec: x-kubernetes-map-type: atomic type: object bearerTokenFile: - description: "File to read bearer token for Alertmanager. \n Cannot be set at the same time as `basicAuth`, `authorization`, or `sigv4`. \n *Deprecated: this will be removed in a future release. Prefer using `authorization`.*" + description: "File to read bearer token for Alertmanager. \n Cannot be set at the same time as `basicAuth`, `authorization`, or `sigv4`. \n Deprecated: this will be removed in a future release. Prefer using `authorization`." type: string enableHttp2: description: Whether to enable HTTP2. @@ -856,7 +856,7 @@ spec: - alertmanagers type: object allowOverlappingBlocks: - description: "AllowOverlappingBlocks enables vertical compaction and vertical query merge in Prometheus. \n *Deprecated: this flag has no effect for Prometheus >= 2.39.0 where overlapping blocks are enabled by default.*" + description: "AllowOverlappingBlocks enables vertical compaction and vertical query merge in Prometheus. \n Deprecated: this flag has no effect for Prometheus >= 2.39.0 where overlapping blocks are enabled by default." type: boolean apiserverConfig: description: 'APIServerConfig allows specifying a host and auth methods to access the Kuberntees API server. If null, Prometheus is assumed to run inside of the cluster: it will discover the API servers automatically and use the Pod''s CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.' @@ -924,10 +924,10 @@ spec: x-kubernetes-map-type: atomic type: object bearerToken: - description: "*Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* \n *Deprecated: this will be removed in a future release.*" + description: "*Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* \n Deprecated: this will be removed in a future release." type: string bearerTokenFile: - description: "File to read bearer token for accessing apiserver. \n Cannot be set at the same time as `basicAuth`, `authorization`, or `bearerToken`. \n *Deprecated: this will be removed in a future release. Prefer using `authorization`.*" + description: "File to read bearer token for accessing apiserver. \n Cannot be set at the same time as `basicAuth`, `authorization`, or `bearerToken`. \n Deprecated: this will be removed in a future release. Prefer using `authorization`." type: string host: description: Kubernetes API address consisting of a hostname or IP address followed by an optional port number. @@ -1049,7 +1049,7 @@ spec: type: boolean type: object baseImage: - description: '*Deprecated: use ''spec.image'' instead.*' + description: 'Deprecated: use ''spec.image'' instead.' type: string bodySizeLimit: description: BodySizeLimit defines per-scrape on response body size. Only valid in Prometheus versions 2.45.0 and newer. @@ -3069,7 +3069,7 @@ spec: description: "Name of Prometheus external label used to denote the Prometheus instance name. The external label will _not_ be added when the field is set to the empty string (`\"\"`). \n Default: \"prometheus\"" type: string prometheusRulesExcludedFromEnforce: - description: 'Defines the list of PrometheusRule objects to which the namespace label enforcement doesn''t apply. This is only relevant when `spec.enforcedNamespaceLabel` is set to true. *Deprecated: use `spec.excludedFromEnforcement` instead.*' + description: 'Defines the list of PrometheusRule objects to which the namespace label enforcement doesn''t apply. This is only relevant when `spec.enforcedNamespaceLabel` is set to true. Deprecated: use `spec.excludedFromEnforcement` instead.' items: description: PrometheusRuleExcludeConfig enables users to configure excluded PrometheusRule names and their namespaces to be ignored while enforcing namespace label for alerts and metrics. properties: @@ -3181,10 +3181,10 @@ spec: x-kubernetes-map-type: atomic type: object bearerToken: - description: "*Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* \n *Deprecated: this will be removed in a future release.*" + description: "*Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* \n Deprecated: this will be removed in a future release." type: string bearerTokenFile: - description: "File from which to read the bearer token for the URL. \n *Deprecated: this will be removed in a future release. Prefer using `authorization`.*" + description: "File from which to read the bearer token for the URL. \n Deprecated: this will be removed in a future release. Prefer using `authorization`." type: string filterExternalLabels: description: "Whether to use the external labels as selectors for the remote read endpoint. \n It requires Prometheus >= v2.34.0." @@ -3524,10 +3524,10 @@ spec: x-kubernetes-map-type: atomic type: object bearerToken: - description: "*Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* \n *Deprecated: this will be removed in a future release.*" + description: "*Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* \n Deprecated: this will be removed in a future release." type: string bearerTokenFile: - description: "File from which to read bearer token for the URL. \n *Deprecated: this will be removed in a future release. Prefer using `authorization`.*" + description: "File from which to read bearer token for the URL. \n Deprecated: this will be removed in a future release. Prefer using `authorization`." type: string headers: additionalProperties: @@ -4239,7 +4239,7 @@ spec: type: object x-kubernetes-map-type: atomic sha: - description: '*Deprecated: use ''spec.image'' instead. The image''s digest can be specified as part of the image name.*' + description: 'Deprecated: use ''spec.image'' instead. The image''s digest can be specified as part of the image name.' type: string shards: description: "EXPERIMENTAL: Number of shards to distribute targets onto. `spec.replicas` multiplied by `spec.shards` is the total number of Pods created. \n Note that scaling down shards will not reshard data onto remaining instances, it must be manually moved. Increasing shards will not reshard data either but it will continue to be available from the same instances. To query globally, use Thanos sidecar and Thanos querier or remote write data to a central location. \n Sharding is performed on the content of the `__address__` target meta-label for PodMonitors and ServiceMonitors and `__param_target__` for Probes. \n Default: 1" @@ -4249,7 +4249,7 @@ spec: description: Storage defines the storage used by Prometheus. properties: disableMountSubPath: - description: '*Deprecated: subPath usage will be removed in a future release.*' + description: 'Deprecated: subPath usage will be removed in a future release.' type: boolean emptyDir: description: 'EmptyDirVolumeSource to be used by the StatefulSet. If specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir' @@ -4549,7 +4549,7 @@ spec: type: string type: object status: - description: '*Deprecated: this field is never set.*' + description: 'Deprecated: this field is never set.' properties: accessModes: description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' @@ -4617,7 +4617,7 @@ spec: type: object type: object tag: - description: '*Deprecated: use ''spec.image'' instead. The image''s tag can be specified as part of the image name.*' + description: 'Deprecated: use ''spec.image'' instead. The image''s tag can be specified as part of the image name.' type: string targetLimit: description: TargetLimit defines a limit on the number of scraped targets that will be accepted. Only valid in Prometheus versions 2.45.0 and newer. @@ -4643,7 +4643,7 @@ spec: type: object type: array baseImage: - description: '*Deprecated: use ''image'' instead.*' + description: 'Deprecated: use ''image'' instead.' type: string blockSize: default: 2h @@ -4775,7 +4775,7 @@ spec: description: "Container image name for Thanos. If specified, it takes precedence over the `spec.thanos.baseImage`, `spec.thanos.tag` and `spec.thanos.sha` fields. \n Specifying `spec.thanos.version` is still necessary to ensure the Prometheus Operator knows which version of Thanos is being configured. \n If neither `spec.thanos.image` nor `spec.thanos.baseImage` are defined, the operator will use the latest upstream version of Thanos available at the time when the operator was released." type: string listenLocal: - description: '*Deprecated: use `grpcListenLocal` and `httpListenLocal` instead.*' + description: 'Deprecated: use `grpcListenLocal` and `httpListenLocal` instead.' type: boolean logFormat: description: Log format for the Thanos sidecar. @@ -4857,10 +4857,10 @@ spec: type: object type: object sha: - description: '*Deprecated: use ''image'' instead. The image digest can be specified as part of the image name.*' + description: 'Deprecated: use ''image'' instead. The image digest can be specified as part of the image name.' type: string tag: - description: '*Deprecated: use ''image'' instead. The image''s tag can be specified as part of the image name.*' + description: 'Deprecated: use ''image'' instead. The image''s tag can be specified as as part of the image name.' type: string tracingConfig: description: "Defines the tracing configuration for the Thanos sidecar. \n More info: https://thanos.io/tip/thanos/tracing.md/ \n This is an experimental feature, it may change in any upcoming release in a breaking way. \n tracingConfigFile takes precedence over this field." diff --git a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/thanosrulers.yaml b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/thanosrulers.yaml index a67d56b79..0344c4666 100644 --- a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/thanosrulers.yaml +++ b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1/thanosrulers.yaml @@ -2753,7 +2753,7 @@ spec: description: Storage spec to specify how storage shall be used. properties: disableMountSubPath: - description: '*Deprecated: subPath usage will be removed in a future release.*' + description: 'Deprecated: subPath usage will be removed in a future release.' type: boolean emptyDir: description: 'EmptyDirVolumeSource to be used by the StatefulSet. If specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir' @@ -3053,7 +3053,7 @@ spec: type: string type: object status: - description: '*Deprecated: this field is never set.*' + description: 'Deprecated: this field is never set.' properties: accessModes: description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' diff --git a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/alertmanagerconfigs.yaml b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/alertmanagerconfigs.yaml index bc0c5e5fa..5380d12da 100644 --- a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/alertmanagerconfigs.yaml +++ b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/alertmanagerconfigs.yaml @@ -61,7 +61,7 @@ spec: minLength: 1 type: string regex: - description: Whether to match on equality (false) or regular-expression (true). Deprecated as of AlertManager >= v0.22.0 where a user should use MatchType instead. + description: 'Whether to match on equality (false) or regular-expression (true). Deprecated: for AlertManager >= v0.22.0, `matchType` should be used instead.' type: boolean value: description: Label value to match. @@ -88,7 +88,7 @@ spec: minLength: 1 type: string regex: - description: Whether to match on equality (false) or regular-expression (true). Deprecated as of AlertManager >= v0.22.0 where a user should use MatchType instead. + description: 'Whether to match on equality (false) or regular-expression (true). Deprecated: for AlertManager >= v0.22.0, `matchType` should be used instead.' type: boolean value: description: Label value to match. @@ -4261,7 +4261,7 @@ spec: minLength: 1 type: string regex: - description: Whether to match on equality (false) or regular-expression (true). Deprecated as of AlertManager >= v0.22.0 where a user should use MatchType instead. + description: 'Whether to match on equality (false) or regular-expression (true). Deprecated: for AlertManager >= v0.22.0, `matchType` should be used instead.' type: boolean value: description: Label value to match. diff --git a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/prometheusagents.yaml b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/prometheusagents.yaml index 4ff892874..7714eb819 100644 --- a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/prometheusagents.yaml +++ b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/prometheusagents.yaml @@ -630,10 +630,10 @@ spec: x-kubernetes-map-type: atomic type: object bearerToken: - description: "*Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* \n *Deprecated: this will be removed in a future release.*" + description: "*Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* \n Deprecated: this will be removed in a future release." type: string bearerTokenFile: - description: "File to read bearer token for accessing apiserver. \n Cannot be set at the same time as `basicAuth`, `authorization`, or `bearerToken`. \n *Deprecated: this will be removed in a future release. Prefer using `authorization`.*" + description: "File to read bearer token for accessing apiserver. \n Cannot be set at the same time as `basicAuth`, `authorization`, or `bearerToken`. \n Deprecated: this will be removed in a future release. Prefer using `authorization`." type: string host: description: Kubernetes API address consisting of a hostname or IP address followed by an optional port number. @@ -2879,10 +2879,10 @@ spec: x-kubernetes-map-type: atomic type: object bearerToken: - description: "*Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* \n *Deprecated: this will be removed in a future release.*" + description: "*Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* \n Deprecated: this will be removed in a future release." type: string bearerTokenFile: - description: "File from which to read bearer token for the URL. \n *Deprecated: this will be removed in a future release. Prefer using `authorization`.*" + description: "File from which to read bearer token for the URL. \n Deprecated: this will be removed in a future release. Prefer using `authorization`." type: string headers: additionalProperties: @@ -3514,7 +3514,7 @@ spec: description: Storage defines the storage used by Prometheus. properties: disableMountSubPath: - description: '*Deprecated: subPath usage will be removed in a future release.*' + description: 'Deprecated: subPath usage will be removed in a future release.' type: boolean emptyDir: description: 'EmptyDirVolumeSource to be used by the StatefulSet. If specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir' @@ -3814,7 +3814,7 @@ spec: type: string type: object status: - description: '*Deprecated: this field is never set.*' + description: 'Deprecated: this field is never set.' properties: accessModes: description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' diff --git a/crd-catalog/pulp/pulp-operator/repo-manager.pulpproject.org/v1beta2/pulps.yaml b/crd-catalog/pulp/pulp-operator/repo-manager.pulpproject.org/v1beta2/pulps.yaml index 49083df95..40e9b1bb7 100644 --- a/crd-catalog/pulp/pulp-operator/repo-manager.pulpproject.org/v1beta2/pulps.yaml +++ b/crd-catalog/pulp/pulp-operator/repo-manager.pulpproject.org/v1beta2/pulps.yaml @@ -35,6 +35,90 @@ spec: container: description: PulpContainer defines configuration of the "auxiliary" containers that run in pulpcore pods properties: + env_vars: + description: Environment variables to add to the container + items: + description: EnvVar represents an environment variable present in a Container. + properties: + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array image: description: 'The image name for the container. By default, if not provided, it will use the same image from .Spec.Image. WARN: defining a different image than the one used by API pods can cause unexpected behaviors!' type: string @@ -562,6 +646,90 @@ spec: type: array type: object type: object + env_vars: + description: Environment variables to add to pulpcore-api container + items: + description: EnvVar represents an environment variable present in a Container. + properties: + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array gunicorn_timeout: default: 90 description: 'The timeout for the gunicorn process. Default: 90' @@ -573,6 +741,90 @@ spec: init_container: description: InitContainer defines configuration of the init-containers that run in pulpcore pods properties: + env_vars: + description: Environment variables to add to the container + items: + description: EnvVar represents an environment variable present in a Container. + properties: + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array image: description: 'The image name for the container. By default, if not provided, it will use the same image from .Spec.Image. WARN: defining a different image than the one used by API pods can cause unexpected behaviors!' type: string @@ -2305,6 +2557,90 @@ spec: type: array type: object type: object + env_vars: + description: Environment variables to add to pulpcore-content container + items: + description: EnvVar represents an environment variable present in a Container. + properties: + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array gunicorn_timeout: default: 90 description: 'The timeout for the gunicorn process. Default: 90' @@ -2316,6 +2652,90 @@ spec: init_container: description: InitContainer defines configuration of the init-containers that run in pulpcore pods properties: + env_vars: + description: Environment variables to add to the container + items: + description: EnvVar represents an environment variable present in a Container. + properties: + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array image: description: 'The image name for the container. By default, if not provided, it will use the same image from .Spec.Image. WARN: defining a different image than the one used by API pods can cause unexpected behaviors!' type: string @@ -3680,6 +4100,90 @@ spec: container: description: PulpContainer defines configuration of the "auxiliary" containers that run in pulpcore pods properties: + env_vars: + description: Environment variables to add to the container + items: + description: EnvVar represents an environment variable present in a Container. + properties: + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array image: description: 'The image name for the container. By default, if not provided, it will use the same image from .Spec.Image. WARN: defining a different image than the one used by API pods can cause unexpected behaviors!' type: string @@ -3793,6 +4297,90 @@ spec: container: description: PulpContainer defines configuration of the "auxiliary" containers that run in pulpcore pods properties: + env_vars: + description: Environment variables to add to the container + items: + description: EnvVar represents an environment variable present in a Container. + properties: + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array image: description: 'The image name for the container. By default, if not provided, it will use the same image from .Spec.Image. WARN: defining a different image than the one used by API pods can cause unexpected behaviors!' type: string @@ -3909,6 +4497,90 @@ spec: web: description: Web defines desired state of pulpcore-web (reverse-proxy) resources properties: + env_vars: + description: Environment variables to add to pulpcore-web container + items: + description: EnvVar represents an environment variable present in a Container. + properties: + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array livenessProbe: description: Periodic probe of container liveness. Container will be restarted if the probe fails. properties: @@ -4724,9 +5396,177 @@ spec: type: array type: object type: object + env_vars: + description: Environment variables to add to pulpcore-worker container + items: + description: EnvVar represents an environment variable present in a Container. + properties: + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array init_container: description: InitContainer defines configuration of the init-containers that run in pulpcore pods properties: + env_vars: + description: Environment variables to add to the container + items: + description: EnvVar represents an environment variable present in a Container. + properties: + name: + description: Name of the environment variable. Must be a C_IDENTIFIER. + type: string + value: + description: 'Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".' + type: string + valueFrom: + description: Source for the environment variable's value. Cannot be used if value is not empty. + properties: + configMapKeyRef: + description: Selects a key of a ConfigMap. + properties: + key: + description: The key to select. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' + properties: + apiVersion: + description: Version of the schema the FieldPath is written in terms of, defaults to "v1". + type: string + fieldPath: + description: Path of the field to select in the specified API version. + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.' + properties: + containerName: + description: 'Container name: required for volumes, optional for env vars' + type: string + divisor: + anyOf: + - type: integer + - type: string + description: Specifies the output format of the exposed resources, defaults to "1" + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + description: 'Required: resource to select' + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + description: Selects a key of a secret in the pod's namespace + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array image: description: 'The image name for the container. By default, if not provided, it will use the same image from .Spec.Image. WARN: defining a different image than the one used by API pods can cause unexpected behaviors!' type: string diff --git a/crd-catalog/ray-project/kuberay/ray.io/v1/rayclusters.yaml b/crd-catalog/ray-project/kuberay/ray.io/v1/rayclusters.yaml index 477354992..493a9be8e 100644 --- a/crd-catalog/ray-project/kuberay/ray.io/v1/rayclusters.yaml +++ b/crd-catalog/ray-project/kuberay/ray.io/v1/rayclusters.yaml @@ -3737,6 +3737,8 @@ spec: type: object rayVersion: type: string + suspend: + type: boolean workerGroupSpecs: items: properties: diff --git a/crd-catalog/ray-project/kuberay/ray.io/v1/rayjobs.yaml b/crd-catalog/ray-project/kuberay/ray.io/v1/rayjobs.yaml index ad3e68869..2c91aad5a 100644 --- a/crd-catalog/ray-project/kuberay/ray.io/v1/rayjobs.yaml +++ b/crd-catalog/ray-project/kuberay/ray.io/v1/rayjobs.yaml @@ -3736,6 +3736,8 @@ spec: type: object rayVersion: type: string + suspend: + type: boolean workerGroupSpecs: items: properties: diff --git a/crd-catalog/ray-project/kuberay/ray.io/v1/rayservices.yaml b/crd-catalog/ray-project/kuberay/ray.io/v1/rayservices.yaml index 21506e958..e02eed4e4 100644 --- a/crd-catalog/ray-project/kuberay/ray.io/v1/rayservices.yaml +++ b/crd-catalog/ray-project/kuberay/ray.io/v1/rayservices.yaml @@ -3721,6 +3721,8 @@ spec: type: object rayVersion: type: string + suspend: + type: boolean workerGroupSpecs: items: properties: diff --git a/crd-catalog/rook/rook/ceph.rook.io/v1/cephblockpoolradosnamespaces.yaml b/crd-catalog/rook/rook/ceph.rook.io/v1/cephblockpoolradosnamespaces.yaml index dd568e428..d0a932045 100644 --- a/crd-catalog/rook/rook/ceph.rook.io/v1/cephblockpoolradosnamespaces.yaml +++ b/crd-catalog/rook/rook/ceph.rook.io/v1/cephblockpoolradosnamespaces.yaml @@ -32,9 +32,15 @@ spec: blockPoolName: description: BlockPoolName is the name of Ceph BlockPool. Typically it's the name of the CephBlockPool CR. type: string + x-kubernetes-validations: + - message: blockPoolName is immutable + rule: self == oldSelf name: description: The name of the CephBlockPoolRadosNamespaceSpec namespace. If not set, the default is the name of the CR. type: string + x-kubernetes-validations: + - message: name is immutable + rule: self == oldSelf required: - blockPoolName type: object diff --git a/crd-catalog/rook/rook/ceph.rook.io/v1/cephbuckettopics.yaml b/crd-catalog/rook/rook/ceph.rook.io/v1/cephbuckettopics.yaml index c08b904ff..3399fa74a 100644 --- a/crd-catalog/rook/rook/ceph.rook.io/v1/cephbuckettopics.yaml +++ b/crd-catalog/rook/rook/ceph.rook.io/v1/cephbuckettopics.yaml @@ -69,7 +69,7 @@ spec: description: Indicate whether the server certificate is validated by the client or not type: boolean sendCloudEvents: - description: 'Send the notifications with the CloudEvents header: https://github.com/cloudevents/spec/blob/main/cloudevents/adapters/aws-s3.md Supported for Ceph Quincy (v17) or newer.' + description: 'Send the notifications with the CloudEvents header: https://github.com/cloudevents/spec/blob/main/cloudevents/adapters/aws-s3.md' type: boolean uri: description: The URI of the HTTP endpoint to push notification to diff --git a/crd-catalog/rook/rook/ceph.rook.io/v1/cephclusters.yaml b/crd-catalog/rook/rook/ceph.rook.io/v1/cephclusters.yaml index 676b678a3..103827d71 100644 --- a/crd-catalog/rook/rook/ceph.rook.io/v1/cephclusters.yaml +++ b/crd-catalog/rook/rook/ceph.rook.io/v1/cephclusters.yaml @@ -1378,7 +1378,7 @@ spec: nullable: true properties: enabled: - description: Whether to compress the data in transit across the wire. The default is not set. Requires Ceph Quincy (v17) or newer. + description: Whether to compress the data in transit across the wire. The default is not set. type: boolean type: object encryption: diff --git a/crd-catalog/rook/rook/ceph.rook.io/v1/cephfilesystemsubvolumegroups.yaml b/crd-catalog/rook/rook/ceph.rook.io/v1/cephfilesystemsubvolumegroups.yaml index 92931cadd..fa8d69376 100644 --- a/crd-catalog/rook/rook/ceph.rook.io/v1/cephfilesystemsubvolumegroups.yaml +++ b/crd-catalog/rook/rook/ceph.rook.io/v1/cephfilesystemsubvolumegroups.yaml @@ -36,9 +36,37 @@ spec: filesystemName: description: FilesystemName is the name of Ceph Filesystem SubVolumeGroup volume name. Typically it's the name of the CephFilesystem CR. If not coming from the CephFilesystem CR, it can be retrieved from the list of Ceph Filesystem volumes with `ceph fs volume ls`. To learn more about Ceph Filesystem abstractions see https://docs.ceph.com/en/latest/cephfs/fs-volumes/#fs-volumes-and-subvolumes type: string + x-kubernetes-validations: + - message: filesystemName is immutable + rule: self == oldSelf name: description: The name of the subvolume group. If not set, the default is the name of the subvolumeGroup CR. type: string + x-kubernetes-validations: + - message: name is immutable + rule: self == oldSelf + pinning: + description: Pinning configuration of CephFilesystemSubVolumeGroup, reference https://docs.ceph.com/en/latest/cephfs/fs-volumes/#pinning-subvolumes-and-subvolume-groups only one out of (export, distributed, random) can be set at a time + properties: + distributed: + maximum: 1.0 + minimum: 0.0 + nullable: true + type: integer + export: + maximum: 256.0 + minimum: -1.0 + nullable: true + type: integer + random: + maximum: 1.0 + minimum: 0.0 + nullable: true + type: number + type: object + x-kubernetes-validations: + - message: only one pinning type should be set + rule: (has(self.export) && !has(self.distributed) && !has(self.random)) || (!has(self.export) && has(self.distributed) && !has(self.random)) || (!has(self.export) && !has(self.distributed) && has(self.random)) || (!has(self.export) && !has(self.distributed) && !has(self.random)) required: - filesystemName type: object diff --git a/crd-catalog/validatedpatterns/patterns-operator/gitops.hybrid-cloud-patterns.io/v1alpha1/patterns.yaml b/crd-catalog/validatedpatterns/patterns-operator/gitops.hybrid-cloud-patterns.io/v1alpha1/patterns.yaml index 05870778e..bed389dcd 100644 --- a/crd-catalog/validatedpatterns/patterns-operator/gitops.hybrid-cloud-patterns.io/v1alpha1/patterns.yaml +++ b/crd-catalog/validatedpatterns/patterns-operator/gitops.hybrid-cloud-patterns.io/v1alpha1/patterns.yaml @@ -85,11 +85,17 @@ spec: description: 'Interval in seconds to poll for drifts between origin and target repositories. Default: 180 seconds' type: integer targetRepo: - description: Git repo containing the pattern to deploy. Must use https/http + description: Git repo containing the pattern to deploy. Must use https/http or, for ssh, git@server:foo/bar.git type: string targetRevision: description: 'Branch, tag, or commit to deploy. Does not support short-sha''s. Default: HEAD' type: string + tokenSecret: + description: Optional. K8s secret name where the info for connecting to git can be found. The supported secrets are modeled after the private repositories in argo (https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#repositories) currently ssh and username+password are supported + type: string + tokenSecretNamespace: + description: Optional. K8s secret namespace where the token for connecting to git can be found + type: string required: - targetRepo type: object @@ -185,6 +191,8 @@ spec: lastStep: description: Last action related to the pattern type: string + path: + type: string version: description: Number of updates to the pattern type: integer diff --git a/kube-custom-resources-rs/src/app_redislabs_com/v1/redisenterpriseclusters.rs b/kube-custom-resources-rs/src/app_redislabs_com/v1/redisenterpriseclusters.rs index 5257d70d0..916b1d16f 100644 --- a/kube-custom-resources-rs/src/app_redislabs_com/v1/redisenterpriseclusters.rs +++ b/kube-custom-resources-rs/src/app_redislabs_com/v1/redisenterpriseclusters.rs @@ -117,6 +117,9 @@ pub struct RedisEnterpriseClusterSpec { /// ADVANCED USAGE USE AT YOUR OWN RISK - specify pod attributes that are required for the statefulset - Redis Enterprise pods. Pod attributes managed by the operator might override these settings. Also make sure the attributes are supported by the K8s version running on the cluster - the operator does not validate that. #[serde(default, skip_serializing_if = "Option::is_none", rename = "redisEnterpriseAdditionalPodSpecAttributes")] pub redis_enterprise_additional_pod_spec_attributes: Option, + /// Reserved, future use, only for use if instructed by Redis. IPFamily dictates what IP family to choose for pods' internal and external communication. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "redisEnterpriseIPFamily")] + pub redis_enterprise_ip_family: Option, /// Specification for Redis Enterprise container image #[serde(default, skip_serializing_if = "Option::is_none", rename = "redisEnterpriseImageSpec")] pub redis_enterprise_image_spec: Option, @@ -2925,6 +2928,13 @@ pub struct RedisEnterpriseClusterRedisEnterpriseAdditionalPodSpecAttributesVolum pub volume_path: String, } +/// RedisEnterpriseClusterSpec defines the desired state of RedisEnterpriseCluster +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum RedisEnterpriseClusterRedisEnterpriseIpFamily { + IPv4, + IPv6, +} + /// Specification for Redis Enterprise container image #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RedisEnterpriseClusterRedisEnterpriseImageSpec { @@ -6721,6 +6731,8 @@ pub struct RedisEnterpriseClusterStatus { /// An API object that represents the cluster's OCSP status #[serde(default, skip_serializing_if = "Option::is_none", rename = "ocspStatus")] pub ocsp_status: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "redisEnterpriseIPFamily")] + pub redis_enterprise_ip_family: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "specStatus")] pub spec_status: Option, #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/kube-custom-resources-rs/src/app_redislabs_com/v1alpha1/redisenterpriseclusters.rs b/kube-custom-resources-rs/src/app_redislabs_com/v1alpha1/redisenterpriseclusters.rs index 73abfdddc..ceb2f581f 100644 --- a/kube-custom-resources-rs/src/app_redislabs_com/v1alpha1/redisenterpriseclusters.rs +++ b/kube-custom-resources-rs/src/app_redislabs_com/v1alpha1/redisenterpriseclusters.rs @@ -84,6 +84,8 @@ pub struct RedisEnterpriseClusterSpec { pub rack_awareness_node_label: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "redisEnterpriseAdditionalPodSpecAttributes")] pub redis_enterprise_additional_pod_spec_attributes: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "redisEnterpriseIPFamily")] + pub redis_enterprise_ip_family: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "redisEnterpriseImageSpec")] pub redis_enterprise_image_spec: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "redisEnterpriseNodeResources")] @@ -2795,6 +2797,12 @@ pub struct RedisEnterpriseClusterRedisEnterpriseAdditionalPodSpecAttributesVolum pub volume_path: String, } +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum RedisEnterpriseClusterRedisEnterpriseIpFamily { + IPv4, + IPv6, +} + #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RedisEnterpriseClusterRedisEnterpriseImageSpec { #[serde(default, skip_serializing_if = "Option::is_none", rename = "digestHash")] @@ -6519,6 +6527,8 @@ pub struct RedisEnterpriseClusterStatus { pub modules: Option>, #[serde(default, skip_serializing_if = "Option::is_none", rename = "ocspStatus")] pub ocsp_status: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "redisEnterpriseIPFamily")] + pub redis_enterprise_ip_family: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "specStatus")] pub spec_status: Option, #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/clusterdefinitions.rs b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/clusterdefinitions.rs index 0106d86af..4aad9c12c 100644 --- a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/clusterdefinitions.rs +++ b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/clusterdefinitions.rs @@ -61,6 +61,9 @@ pub struct ClusterDefinitionComponentDefs { /// podSpec define pod spec template of the cluster component. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSpec")] pub pod_spec: Option, + /// postStartSpec defines the command to be executed when the component is ready, and the command will only be executed once after the component becomes ready. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "postStartSpec")] + pub post_start_spec: Option, /// probes setting for healthy checks. #[serde(default, skip_serializing_if = "Option::is_none")] pub probes: Option, @@ -4510,6 +4513,118 @@ pub struct ClusterDefinitionComponentDefsPodSpecVolumesVsphereVolume { pub volume_path: String, } +/// postStartSpec defines the command to be executed when the component is ready, and the command will only be executed once after the component becomes ready. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterDefinitionComponentDefsPostStartSpec { + /// cmdExecutorConfig is the executor configuration of the post-start command. + #[serde(rename = "cmdExecutorConfig")] + pub cmd_executor_config: ClusterDefinitionComponentDefsPostStartSpecCmdExecutorConfig, + /// scriptSpecSelectors defines the selector of the scriptSpecs that need to be referenced. Once ScriptSpecSelectors is defined, the scripts defined in scriptSpecs can be referenced in the PostStartAction.CmdExecutorConfig. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "scriptSpecSelectors")] + pub script_spec_selectors: Option>, +} + +/// cmdExecutorConfig is the executor configuration of the post-start command. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterDefinitionComponentDefsPostStartSpecCmdExecutorConfig { + /// args is used to perform statements. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub args: Option>, + /// command to perform statements. + pub command: Vec, + /// envs is a list of environment variables. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub env: Option>, + /// image for Connector when executing the command. + pub image: String, +} + +/// EnvVar represents an environment variable present in a Container. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterDefinitionComponentDefsPostStartSpecCmdExecutorConfigEnv { + /// Name of the environment variable. Must be a C_IDENTIFIER. + pub name: String, + /// Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "". + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, + /// Source for the environment variable's value. Cannot be used if value is not empty. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")] + pub value_from: Option, +} + +/// Source for the environment variable's value. Cannot be used if value is not empty. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterDefinitionComponentDefsPostStartSpecCmdExecutorConfigEnvValueFrom { + /// Selects a key of a ConfigMap. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")] + pub config_map_key_ref: Option, + /// Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldRef")] + pub field_ref: Option, + /// Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceFieldRef")] + pub resource_field_ref: Option, + /// Selects a key of a secret in the pod's namespace + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")] + pub secret_key_ref: Option, +} + +/// Selects a key of a ConfigMap. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterDefinitionComponentDefsPostStartSpecCmdExecutorConfigEnvValueFromConfigMapKeyRef { + /// The key to select. + pub key: String, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Specify whether the ConfigMap or its key must be defined + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +/// Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterDefinitionComponentDefsPostStartSpecCmdExecutorConfigEnvValueFromFieldRef { + /// Version of the schema the FieldPath is written in terms of, defaults to "v1". + #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] + pub api_version: Option, + /// Path of the field to select in the specified API version. + #[serde(rename = "fieldPath")] + pub field_path: String, +} + +/// Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterDefinitionComponentDefsPostStartSpecCmdExecutorConfigEnvValueFromResourceFieldRef { + /// Container name: required for volumes, optional for env vars + #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerName")] + pub container_name: Option, + /// Specifies the output format of the exposed resources, defaults to "1" + #[serde(default, skip_serializing_if = "Option::is_none")] + pub divisor: Option, + /// Required: resource to select + pub resource: String, +} + +/// Selects a key of a secret in the pod's namespace +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterDefinitionComponentDefsPostStartSpecCmdExecutorConfigEnvValueFromSecretKeyRef { + /// The key of the secret to select from. Must be a valid secret key. + pub key: String, + /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Specify whether the Secret or its key must be defined + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterDefinitionComponentDefsPostStartSpecScriptSpecSelectors { + /// ScriptSpec name of the referent, refer to componentDefs[x].scriptSpecs[y].Name. + pub name: String, +} + /// probes setting for healthy checks. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterDefinitionComponentDefsProbes { diff --git a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/clusters.rs b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/clusters.rs index a262382fe..88a42bf56 100644 --- a/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/clusters.rs +++ b/kube-custom-resources-rs/src/apps_kubeblocks_io/v1alpha1/clusters.rs @@ -161,7 +161,7 @@ pub struct ClusterComponentSpecs { /// noCreatePDB defines the PodDisruptionBudget creation behavior and is set to true if creation of PodDisruptionBudget for this component is not needed. It defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "noCreatePDB")] pub no_create_pdb: Option, - /// Component replicas. The default value is used in ClusterDefinition spec if not specified. + /// Component replicas. pub replicas: i32, /// Resources requests and limits of workload. #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/kube-custom-resources-rs/src/canaries_flanksource_com/v1/canaries.rs b/kube-custom-resources-rs/src/canaries_flanksource_com/v1/canaries.rs index cb4a8e18b..fe1988335 100644 --- a/kube-custom-resources-rs/src/canaries_flanksource_com/v1/canaries.rs +++ b/kube-custom-resources-rs/src/canaries_flanksource_com/v1/canaries.rs @@ -143,6 +143,9 @@ pub struct CanaryAlertmanager { pub namespace: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub password: Option, + /// Relationships defines a way to link the check results to components and configs using lookup expressions. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub relationships: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub test: Option, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -225,6 +228,127 @@ pub struct CanaryAlertmanagerPasswordValueFromSecretKeyRef { pub name: Option, } +/// Relationships defines a way to link the check results to components and configs using lookup expressions. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryAlertmanagerRelationships { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub components: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub configs: Option>, +} + +/// LookupSpec defines a tuple of fields to lookup. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryAlertmanagerRelationshipsComponents { + /// Lookup specifies the type of lookup to perform. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Lookup specifies the type of lookup to perform. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// Lookup specifies the type of lookup to perform. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +/// Lookup specifies the type of lookup to perform. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryAlertmanagerRelationshipsComponentsName { + /// Expr is a cel-expression. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub expr: Option, + /// Label specifies the key to lookup on the label. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub label: Option, + /// Value is the static value to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +/// Lookup specifies the type of lookup to perform. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryAlertmanagerRelationshipsComponentsNamespace { + /// Expr is a cel-expression. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub expr: Option, + /// Label specifies the key to lookup on the label. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub label: Option, + /// Value is the static value to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +/// Lookup specifies the type of lookup to perform. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryAlertmanagerRelationshipsComponentsType { + /// Expr is a cel-expression. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub expr: Option, + /// Label specifies the key to lookup on the label. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub label: Option, + /// Value is the static value to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +/// LookupSpec defines a tuple of fields to lookup. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryAlertmanagerRelationshipsConfigs { + /// Lookup specifies the type of lookup to perform. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Lookup specifies the type of lookup to perform. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// Lookup specifies the type of lookup to perform. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +/// Lookup specifies the type of lookup to perform. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryAlertmanagerRelationshipsConfigsName { + /// Expr is a cel-expression. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub expr: Option, + /// Label specifies the key to lookup on the label. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub label: Option, + /// Value is the static value to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +/// Lookup specifies the type of lookup to perform. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryAlertmanagerRelationshipsConfigsNamespace { + /// Expr is a cel-expression. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub expr: Option, + /// Label specifies the key to lookup on the label. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub label: Option, + /// Value is the static value to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +/// Lookup specifies the type of lookup to perform. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryAlertmanagerRelationshipsConfigsType { + /// Expr is a cel-expression. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub expr: Option, + /// Label specifies the key to lookup on the label. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub label: Option, + /// Value is the static value to use. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct CanaryAlertmanagerTest { #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/kube-custom-resources-rs/src/ceph_rook_io/v1/cephbuckettopics.rs b/kube-custom-resources-rs/src/ceph_rook_io/v1/cephbuckettopics.rs index 0dedd8199..d9e26fc1e 100644 --- a/kube-custom-resources-rs/src/ceph_rook_io/v1/cephbuckettopics.rs +++ b/kube-custom-resources-rs/src/ceph_rook_io/v1/cephbuckettopics.rs @@ -74,7 +74,7 @@ pub struct CephBucketTopicEndpointHttp { /// Indicate whether the server certificate is validated by the client or not #[serde(default, skip_serializing_if = "Option::is_none", rename = "disableVerifySSL")] pub disable_verify_ssl: Option, - /// Send the notifications with the CloudEvents header: https://github.com/cloudevents/spec/blob/main/cloudevents/adapters/aws-s3.md Supported for Ceph Quincy (v17) or newer. + /// Send the notifications with the CloudEvents header: https://github.com/cloudevents/spec/blob/main/cloudevents/adapters/aws-s3.md #[serde(default, skip_serializing_if = "Option::is_none", rename = "sendCloudEvents")] pub send_cloud_events: Option, /// The URI of the HTTP endpoint to push notification to diff --git a/kube-custom-resources-rs/src/ceph_rook_io/v1/cephfilesystemsubvolumegroups.rs b/kube-custom-resources-rs/src/ceph_rook_io/v1/cephfilesystemsubvolumegroups.rs index 5862b498f..32a6d9ce4 100644 --- a/kube-custom-resources-rs/src/ceph_rook_io/v1/cephfilesystemsubvolumegroups.rs +++ b/kube-custom-resources-rs/src/ceph_rook_io/v1/cephfilesystemsubvolumegroups.rs @@ -19,6 +19,20 @@ pub struct CephFilesystemSubVolumeGroupSpec { /// The name of the subvolume group. If not set, the default is the name of the subvolumeGroup CR. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, + /// Pinning configuration of CephFilesystemSubVolumeGroup, reference https://docs.ceph.com/en/latest/cephfs/fs-volumes/#pinning-subvolumes-and-subvolume-groups only one out of (export, distributed, random) can be set at a time + #[serde(default, skip_serializing_if = "Option::is_none")] + pub pinning: Option, +} + +/// Pinning configuration of CephFilesystemSubVolumeGroup, reference https://docs.ceph.com/en/latest/cephfs/fs-volumes/#pinning-subvolumes-and-subvolume-groups only one out of (export, distributed, random) can be set at a time +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CephFilesystemSubVolumeGroupPinning { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub distributed: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub export: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub random: Option, } /// Status represents the status of a CephFilesystem SubvolumeGroup diff --git a/kube-custom-resources-rs/src/cert_manager_io/v1/certificates.rs b/kube-custom-resources-rs/src/cert_manager_io/v1/certificates.rs index 2ec52c938..3b5234618 100644 --- a/kube-custom-resources-rs/src/cert_manager_io/v1/certificates.rs +++ b/kube-custom-resources-rs/src/cert_manager_io/v1/certificates.rs @@ -53,6 +53,10 @@ pub struct CertificateSpec { /// Cannot be set if the `subject` or `commonName` field is set. This is an Alpha Feature and is only enabled with the `--feature-gates=LiteralCertificateSubject=true` option set on both the controller and webhook components. #[serde(default, skip_serializing_if = "Option::is_none", rename = "literalSubject")] pub literal_subject: Option, + /// x.509 certificate NameConstraint extension which MUST NOT be used in a non-CA certificate. More Info: https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.10 + /// This is an Alpha Feature and is only enabled with the `--feature-gates=useCertificateRequestNameConstraints=true` option set on both the controller and webhook components. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nameConstraints")] + pub name_constraints: Option, /// Private key options. These include the key algorithm and size, the used encoding and the rotation policy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "privateKey")] pub private_key: Option, @@ -166,6 +170,55 @@ pub struct CertificateKeystoresPkcs12PasswordSecretRef { pub name: String, } +/// x.509 certificate NameConstraint extension which MUST NOT be used in a non-CA certificate. More Info: https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.10 +/// This is an Alpha Feature and is only enabled with the `--feature-gates=useCertificateRequestNameConstraints=true` option set on both the controller and webhook components. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CertificateNameConstraints { + /// if true then the name constraints are marked critical. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub critical: Option, + /// Excluded contains the constraints which must be disallowed. Any name matching a restriction in the excluded field is invalid regardless of information appearing in the permitted + #[serde(default, skip_serializing_if = "Option::is_none")] + pub excluded: Option, + /// Permitted contains the constraints in which the names must be located. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub permitted: Option, +} + +/// Excluded contains the constraints which must be disallowed. Any name matching a restriction in the excluded field is invalid regardless of information appearing in the permitted +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CertificateNameConstraintsExcluded { + /// DNSDomains is a list of DNS domains that are permitted or excluded. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dnsDomains")] + pub dns_domains: Option>, + /// EmailAddresses is a list of Email Addresses that are permitted or excluded. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "emailAddresses")] + pub email_addresses: Option>, + /// IPRanges is a list of IP Ranges that are permitted or excluded. This should be a valid CIDR notation. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "ipRanges")] + pub ip_ranges: Option>, + /// URIDomains is a list of URI domains that are permitted or excluded. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "uriDomains")] + pub uri_domains: Option>, +} + +/// Permitted contains the constraints in which the names must be located. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CertificateNameConstraintsPermitted { + /// DNSDomains is a list of DNS domains that are permitted or excluded. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "dnsDomains")] + pub dns_domains: Option>, + /// EmailAddresses is a list of Email Addresses that are permitted or excluded. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "emailAddresses")] + pub email_addresses: Option>, + /// IPRanges is a list of IP Ranges that are permitted or excluded. This should be a valid CIDR notation. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "ipRanges")] + pub ip_ranges: Option>, + /// URIDomains is a list of URI domains that are permitted or excluded. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "uriDomains")] + pub uri_domains: Option>, +} + /// Private key options. These include the key algorithm and size, the used encoding and the rotation policy. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CertificatePrivateKey { diff --git a/kube-custom-resources-rs/src/cluster_clusterpedia_io/v1alpha2/pediaclusters.rs b/kube-custom-resources-rs/src/cluster_clusterpedia_io/v1alpha2/pediaclusters.rs index fa038fd9a..2974c79e8 100644 --- a/kube-custom-resources-rs/src/cluster_clusterpedia_io/v1alpha2/pediaclusters.rs +++ b/kube-custom-resources-rs/src/cluster_clusterpedia_io/v1alpha2/pediaclusters.rs @@ -20,6 +20,8 @@ pub struct PediaClusterSpec { pub key_data: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub kubeconfig: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "shardingName")] + pub sharding_name: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "syncAllCustomResources")] pub sync_all_custom_resources: Option, #[serde(rename = "syncResources")] @@ -44,6 +46,8 @@ pub struct PediaClusterStatus { pub apiserver: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "shardingName")] + pub sharding_name: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "syncResources")] pub sync_resources: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/kube-custom-resources-rs/src/couchbase_com/v2/couchbasebackups.rs b/kube-custom-resources-rs/src/couchbase_com/v2/couchbasebackups.rs index 06e1a6686..3a8d7a508 100644 --- a/kube-custom-resources-rs/src/couchbase_com/v2/couchbasebackups.rs +++ b/kube-custom-resources-rs/src/couchbase_com/v2/couchbasebackups.rs @@ -23,6 +23,9 @@ pub struct CouchbaseBackupSpec { /// Data allows control over what key-value/document data is included in the backup. By default, all data is included. Modifications to this field will only take effect on the next full backup. #[serde(default, skip_serializing_if = "Option::is_none")] pub data: Option, + /// DefaultRecoveryMethod specifies how cbbackupmgr should recover from broken backup/restore attempts. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultRecoveryMethod")] + pub default_recovery_method: Option, /// EphemeralVolume sets backup to use an ephemeral volume instead of a persistent volume. This is used when backing up to a remote cloud provider, where a persistent volume is not needed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "ephemeralVolume")] pub ephemeral_volume: Option, @@ -92,6 +95,17 @@ pub struct CouchbaseBackupData { pub include: Option>, } +/// CouchbaseBackupSpec is allows the specification of how a Couchbase backup is configured, including when backups are performed, how long they are retained for, and where they are backed up to. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum CouchbaseBackupDefaultRecoveryMethod { + #[serde(rename = "none")] + None, + #[serde(rename = "resume")] + Resume, + #[serde(rename = "purge")] + Purge, +} + /// Full is the schedule on when to take full backups. Used in Full/Incremental and FullOnly backup strategies. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct CouchbaseBackupFull { diff --git a/kube-custom-resources-rs/src/couchbase_com/v2/couchbaseclusters.rs b/kube-custom-resources-rs/src/couchbase_com/v2/couchbaseclusters.rs index cff5ff77d..09b53f0d5 100644 --- a/kube-custom-resources-rs/src/couchbase_com/v2/couchbaseclusters.rs +++ b/kube-custom-resources-rs/src/couchbase_com/v2/couchbaseclusters.rs @@ -73,7 +73,7 @@ pub struct CouchbaseClusterSpec { pub rolling_upgrade: Option, /// Security defines Couchbase cluster security options such as the administrator account username and password, and user RBAC settings. pub security: CouchbaseClusterSecurity, - /// SecurityContext allows the configuration of the security context for all Couchbase server pods. When using persistent volumes you may need to set the fsGroup field in order to write to the volume. For non-root clusters you must also set runAsUser to 1000, corresponding to the Couchbase user in official container images. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + /// DEPRECATED - by spec.security.securityContext SecurityContext allows the configuration of the security context for all Couchbase server pods. When using persistent volumes you may need to set the fsGroup field in order to write to the volume. For non-root clusters you must also set runAsUser to 1000, corresponding to the Couchbase user in official container images. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ #[serde(default, skip_serializing_if = "Option::is_none", rename = "securityContext")] pub security_context: Option, /// ServerGroups define the set of availability zones you want to distribute pods over, and construct Couchbase server groups for. By default, most cloud providers will label nodes with the key "topology.kubernetes.io/zone", the values associated with that key are used here to provide explicit scheduling by the Operator. You may manually label nodes using the "topology.kubernetes.io/zone" key, to provide failure-domain aware scheduling when none is provided for you. Global server groups are applied to all server classes, and may be overridden on a per-server class basis to give more control over scheduling and server groups. @@ -277,7 +277,7 @@ pub struct CouchbaseClusterCluster { /// AutoCompaction allows the configuration of auto-compaction, including on what conditions disk space is reclaimed and when it is allowed to run. #[serde(default, skip_serializing_if = "Option::is_none", rename = "autoCompaction")] pub auto_compaction: Option, - /// AutoFailoverMaxCount is the maximum number of automatic failovers Couchbase server will allow before not allowing any more. This field must be between 1-3 for server versions prior to 7.1.0 default is 3. + /// AutoFailoverMaxCount is the maximum number of automatic failovers Couchbase server will allow before not allowing any more. This field must be between 1-3 for server versions prior to 7.1.0 default is 1. #[serde(default, skip_serializing_if = "Option::is_none", rename = "autoFailoverMaxCount")] pub auto_failover_max_count: Option, /// AutoFailoverOnDataDiskIssues defines whether Couchbase server should failover a pod if a disk issue was detected. @@ -383,10 +383,16 @@ pub struct CouchbaseClusterClusterAutoCompactionViewFragmentationThreshold { /// Data allows the data service to be configured. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CouchbaseClusterClusterData { + /// AuxIOThreads allows the number of threads used by the data service, per pod, to be altered. This indicates the number of threads that are to be used in the AuxIO thread pool to run auxiliary I/O tasks. This value must be between 4 and 64 threads, and should only be increased where there are sufficient CPU resources allocated for their use. If not specified, this defaults to the default value set by Couchbase Server. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "auxIOThreads")] + pub aux_io_threads: Option, + /// NonIOThreads allows the number of threads used by the data service, per pod, to be altered. This indicates the number of threads that are to be used in the NonIO thread pool to run in memory tasks. This value must be between 4 and 64 threads, and should only be increased where there are sufficient CPU resources allocated for their use. If not specified, this defaults to the default value set by Couchbase Server. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nonIOThreads")] + pub non_io_threads: Option, /// ReaderThreads allows the number of threads used by the data service, per pod, to be altered. This value must be between 4 and 64 threads, and should only be increased where there are sufficient CPU resources allocated for their use. If not specified, this defaults to the default value set by Couchbase Server. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readerThreads")] pub reader_threads: Option, - /// ReaderThreads allows the number of threads used by the data service, per pod, to be altered. This setting is especially relevant when using "durable writes", increasing this field will have a large impact on performance. This value must be between 4 and 64 threads, and should only be increased where there are sufficient CPU resources allocated for their use. If not specified, this defaults to the default value set by Couchbase Server. + /// WriterThreads allows the number of threads used by the data service, per pod, to be altered. This setting is especially relevant when using "durable writes", increasing this field will have a large impact on performance. This value must be between 4 and 64 threads, and should only be increased where there are sufficient CPU resources allocated for their use. If not specified, this defaults to the default value set by Couchbase Server. #[serde(default, skip_serializing_if = "Option::is_none", rename = "writerThreads")] pub writer_threads: Option, } @@ -624,10 +630,10 @@ pub struct CouchbaseClusterMonitoringPrometheus { /// AuthorizationSecret is the name of a Kubernetes secret that contains a bearer token to authorize GET requests to the metrics endpoint #[serde(default, skip_serializing_if = "Option::is_none", rename = "authorizationSecret")] pub authorization_secret: Option, - /// Enabled is a boolean that enables/disables the metrics sidecar container. + /// Enabled is a boolean that enables/disables the metrics sidecar container. This must be set to true, when image is provided. #[serde(default, skip_serializing_if = "Option::is_none")] pub enabled: Option, - /// Image is the metrics image to be used to collect metrics. No validation is carried out as this can be any arbitrary repo and tag. + /// Image is the metrics image to be used to collect metrics. No validation is carried out as this can be any arbitrary repo and tag. enabled must be set to true, when image is provided. pub image: String, /// RefreshRate is the frequency in which cached statistics are updated in seconds. Shorter intervals will add additional resource overhead to clusters running Couchbase Server 7.0+ Default is 60 seconds, Maximum value is 600 seconds, and minimum value is 1 second. #[serde(default, skip_serializing_if = "Option::is_none", rename = "refreshRate")] @@ -663,6 +669,9 @@ pub struct CouchbaseClusterNetworking { /// DEPRECATED - not required by Couchbase Server. AdminConsoleServices is a selector to choose specific services to expose via the admin console. This field may contain any of "data", "index", "query", "search", "eventing" and "analytics". Each service may only be included once. #[serde(default, skip_serializing_if = "Option::is_none", rename = "adminConsoleServices")] pub admin_console_services: Option>, + /// DEVELOPER PREVIEW - This feature is in developer preview. CloudNativeGateway is used to provision a gRPC gateway proxying a Couchbase cluster. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "cloudNativeGateway")] + pub cloud_native_gateway: Option, /// DisableUIOverHTTP is used to explicitly enable and disable UI access over the HTTP protocol. If not specified, this field defaults to false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "disableUIOverHTTP")] pub disable_ui_over_http: Option, @@ -814,6 +823,24 @@ pub enum CouchbaseClusterNetworkingAdminConsoleServiceType { LoadBalancer, } +/// DEVELOPER PREVIEW - This feature is in developer preview. CloudNativeGateway is used to provision a gRPC gateway proxying a Couchbase cluster. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CouchbaseClusterNetworkingCloudNativeGateway { + /// DEVELOPER PREVIEW - This feature is in developer preview. Image is the Cloud Native Gateway image to be used to run the sidecar container. No validation is carried out as this can be any arbitrary repo and tag. TODO: provide a default kubebuilder default image tag as field is mandatory. + pub image: String, + /// DEVELOPER PREVIEW - This feature is in developer preview. TLS defines the TLS configuration for the Cloud Native Gateway server including server and client certificate configuration, and TLS security policies. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tls: Option, +} + +/// DEVELOPER PREVIEW - This feature is in developer preview. TLS defines the TLS configuration for the Cloud Native Gateway server including server and client certificate configuration, and TLS security policies. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CouchbaseClusterNetworkingCloudNativeGatewayTls { + /// DEVELOPER PREVIEW - This feature is in developer preview. ServerSecretName specifies the secret name, in the same namespace as the cluster, that contains Cloud Native Gateway gRPC server TLS data. The secret is expected to contain "tls.crt" and "tls.key" as per the kubernetes.io/tls secret type. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serverSecretName")] + pub server_secret_name: Option, +} + /// DNS defines information required for Dynamic DNS support. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CouchbaseClusterNetworkingDns { @@ -1119,9 +1146,15 @@ pub struct CouchbaseClusterSecurity { /// LDAP provides settings to authenticate and authorize LDAP users with Couchbase Server. When specified, the Operator keeps these settings in sync with Cocuhbase Server's LDAP configuration. Leave empty to manually manage LDAP configuration. #[serde(default, skip_serializing_if = "Option::is_none")] pub ldap: Option, + /// PodSecurityContext allows the configuration of the security context for all Couchbase server pods. When using persistent volumes you may need to set the fsGroup field in order to write to the volume. For non-root clusters you must also set runAsUser to 1000, corresponding to the Couchbase user in official container images. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] + pub pod_security_context: Option, /// RBAC is the options provided for enabling and selecting RBAC User resources to manage. #[serde(default, skip_serializing_if = "Option::is_none")] pub rbac: Option, + /// SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. Use securityContext.allowPrivilegeEscalation field to grant more privileges than its parent process. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + #[serde(default, skip_serializing_if = "Option::is_none", rename = "securityContext")] + pub security_context: Option, /// UISessionTimeout sets how long, in minutes, before a user is declared inactive and signed out from the Couchbase Server UI. 0 represents no time out. #[serde(default, skip_serializing_if = "Option::is_none", rename = "uiSessionTimeout")] pub ui_session_timeout: Option, @@ -1196,6 +1229,98 @@ pub struct CouchbaseClusterSecurityLdapUserDnMapping { pub template: Option, } +/// PodSecurityContext allows the configuration of the security context for all Couchbase server pods. When using persistent volumes you may need to set the fsGroup field in order to write to the volume. For non-root clusters you must also set runAsUser to 1000, corresponding to the Couchbase user in official container images. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CouchbaseClusterSecurityPodSecurityContext { + /// A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: + /// 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- + /// If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroup")] + pub fs_group: Option, + /// fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "fsGroupChangePolicy")] + pub fs_group_change_policy: Option, + /// The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + /// Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + /// The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + /// The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + /// The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + /// A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "supplementalGroups")] + pub supplemental_groups: Option>, + /// Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub sysctls: Option>, + /// The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +/// The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CouchbaseClusterSecurityPodSecurityContextSeLinuxOptions { + /// Level is SELinux level label that applies to the container. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + /// Role is a SELinux role label that applies to the container. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + /// Type is a SELinux type label that applies to the container. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + /// User is a SELinux user label that applies to the container. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +/// The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CouchbaseClusterSecurityPodSecurityContextSeccompProfile { + /// localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is "Localhost". + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + /// type indicates which kind of seccomp profile will be applied. Valid options are: + /// Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. + #[serde(rename = "type")] + pub r#type: String, +} + +/// Sysctl defines a kernel parameter to be set +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CouchbaseClusterSecurityPodSecurityContextSysctls { + /// Name of a property to set + pub name: String, + /// Value of a property to set + pub value: String, +} + +/// The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CouchbaseClusterSecurityPodSecurityContextWindowsOptions { + /// GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + /// GMSACredentialSpecName is the name of the GMSA credential spec to use. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + /// HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + /// The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + /// RBAC is the options provided for enabling and selecting RBAC User resources to manage. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CouchbaseClusterSecurityRbac { @@ -1230,7 +1355,102 @@ pub struct CouchbaseClusterSecurityRbacSelectorMatchExpressions { pub values: Option>, } -/// SecurityContext allows the configuration of the security context for all Couchbase server pods. When using persistent volumes you may need to set the fsGroup field in order to write to the volume. For non-root clusters you must also set runAsUser to 1000, corresponding to the Couchbase user in official container images. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ +/// SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. Use securityContext.allowPrivilegeEscalation field to grant more privileges than its parent process. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CouchbaseClusterSecuritySecurityContext { + /// AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowPrivilegeEscalation")] + pub allow_privilege_escalation: Option, + /// The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub capabilities: Option, + /// Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub privileged: Option, + /// procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "procMount")] + pub proc_mount: Option, + /// Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnlyRootFilesystem")] + pub read_only_root_filesystem: Option, + /// The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsGroup")] + pub run_as_group: Option, + /// Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsNonRoot")] + pub run_as_non_root: Option, + /// The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUser")] + pub run_as_user: Option, + /// The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seLinuxOptions")] + pub se_linux_options: Option, + /// The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "seccompProfile")] + pub seccomp_profile: Option, + /// The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "windowsOptions")] + pub windows_options: Option, +} + +/// The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CouchbaseClusterSecuritySecurityContextCapabilities { + /// Added capabilities + #[serde(default, skip_serializing_if = "Option::is_none")] + pub add: Option>, + /// Removed capabilities + #[serde(default, skip_serializing_if = "Option::is_none")] + pub drop: Option>, +} + +/// The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CouchbaseClusterSecuritySecurityContextSeLinuxOptions { + /// Level is SELinux level label that applies to the container. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub level: Option, + /// Role is a SELinux role label that applies to the container. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, + /// Type is a SELinux type label that applies to the container. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + /// User is a SELinux user label that applies to the container. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub user: Option, +} + +/// The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CouchbaseClusterSecuritySecurityContextSeccompProfile { + /// localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must only be set if type is "Localhost". + #[serde(default, skip_serializing_if = "Option::is_none", rename = "localhostProfile")] + pub localhost_profile: Option, + /// type indicates which kind of seccomp profile will be applied. Valid options are: + /// Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. + #[serde(rename = "type")] + pub r#type: String, +} + +/// The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct CouchbaseClusterSecuritySecurityContextWindowsOptions { + /// GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpec")] + pub gmsa_credential_spec: Option, + /// GMSACredentialSpecName is the name of the GMSA credential spec to use. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gmsaCredentialSpecName")] + pub gmsa_credential_spec_name: Option, + /// HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostProcess")] + pub host_process: Option, + /// The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "runAsUserName")] + pub run_as_user_name: Option, +} + +/// DEPRECATED - by spec.security.securityContext SecurityContext allows the configuration of the security context for all Couchbase server pods. When using persistent volumes you may need to set the fsGroup field in order to write to the volume. For non-root clusters you must also set runAsUser to 1000, corresponding to the Couchbase user in official container images. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CouchbaseClusterSecurityContext { /// A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: @@ -2252,7 +2472,7 @@ pub struct CouchbaseClusterXdcrRemoteClusters { pub authentication_secret: Option, /// Hostname is the connection string to use to connect the remote cluster. To use IPv6, place brackets (`[`, `]`) around the IPv6 value. pub hostname: String, - /// Name of the remote cluster. + /// Name of the remote cluster. Note that, -operator-managed is added as suffix by operator automatically to the name in order to diffrentiate from non operator managed remote clusters. pub name: String, /// Replications are replication streams from this cluster to the remote one. This field defines how to look up CouchbaseReplication resources. By default any CouchbaseReplication resources in the namespace will be considered. #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/kube-custom-resources-rs/src/dataprotection_kubeblocks_io/v1alpha1/backups.rs b/kube-custom-resources-rs/src/dataprotection_kubeblocks_io/v1alpha1/backups.rs index 2fe44b71a..2eacb5b31 100644 --- a/kube-custom-resources-rs/src/dataprotection_kubeblocks_io/v1alpha1/backups.rs +++ b/kube-custom-resources-rs/src/dataprotection_kubeblocks_io/v1alpha1/backups.rs @@ -20,7 +20,7 @@ pub struct BackupSpec { /// Which backupPolicy is applied to perform this backup. #[serde(rename = "backupPolicyName")] pub backup_policy_name: String, - /// deletionPolicy determines whether the backup contents stored in backup repository should be deleted when the backup custom resource is deleted. Supported values are "Retain" and "Delete". "Retain" means that the backup can not be deleted and remains in 'Deleting' phase. "Delete" means that the backup content and its physical snapshot on backup repository are deleted. + /// deletionPolicy determines whether the backup contents stored in backup repository should be deleted when the backup custom resource is deleted. Supported values are "Retain" and "Delete". "Retain" means that the backup can not be deleted and remains in 'Deleting' phase. "Delete" means that the backup content and its physical snapshot on backup repository are deleted. TODO: for the retain policy, we should support in the future for only deleting the backup custom objects but retaining the backup contents in backup repository. The current implementation only prevent accidental deletion of backup data. #[serde(default, skip_serializing_if = "Option::is_none", rename = "deletionPolicy")] pub deletion_policy: Option, /// parentBackupName determines the parent backup name for incremental or differential backup. diff --git a/kube-custom-resources-rs/src/eks_services_k8s_aws/v1alpha1/addons.rs b/kube-custom-resources-rs/src/eks_services_k8s_aws/v1alpha1/addons.rs index 65b901346..7df5ca5cf 100644 --- a/kube-custom-resources-rs/src/eks_services_k8s_aws/v1alpha1/addons.rs +++ b/kube-custom-resources-rs/src/eks_services_k8s_aws/v1alpha1/addons.rs @@ -35,7 +35,7 @@ pub struct AddonSpec { /// How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are handled based on the value you choose: /// * None – If the self-managed version of the add-on is installed on your cluster, Amazon EKS doesn't change the value. Creation of the add-on might fail. /// * Overwrite – If the self-managed version of the add-on is installed on your cluster and the Amazon EKS default value is different than the existing value, Amazon EKS changes the value to the Amazon EKS default value. - /// * Preserve – Not supported. You can set this value when updating an add-on though. For more information, see UpdateAddon (https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html). + /// * Preserve – This is similar to the NONE option. If the self-managed version of the add-on is installed on your cluster Amazon EKS doesn't change the add-on resource properties. Creation of the add-on might fail if conflicts are detected. This option works differently during the update operation. For more information, see UpdateAddon (https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html). /// If you don't currently have the self-managed version of the add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS sets all values to default values, regardless of the option that you specify. #[serde(default, skip_serializing_if = "Option::is_none", rename = "resolveConflicts")] pub resolve_conflicts: Option, diff --git a/kube-custom-resources-rs/src/eks_services_k8s_aws/v1alpha1/clusters.rs b/kube-custom-resources-rs/src/eks_services_k8s_aws/v1alpha1/clusters.rs index b4eec172a..ff3957b17 100644 --- a/kube-custom-resources-rs/src/eks_services_k8s_aws/v1alpha1/clusters.rs +++ b/kube-custom-resources-rs/src/eks_services_k8s_aws/v1alpha1/clusters.rs @@ -99,14 +99,14 @@ pub struct ClusterLoggingClusterLogging { pub struct ClusterOutpostConfig { #[serde(default, skip_serializing_if = "Option::is_none", rename = "controlPlaneInstanceType")] pub control_plane_instance_type: Option, - /// The placement configuration for all the control plane instances of your local Amazon EKS cluster on an Amazon Web Services Outpost. For more information, see Capacity considerations (https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html) in the Amazon EKS User Guide + /// The placement configuration for all the control plane instances of your local Amazon EKS cluster on an Amazon Web Services Outpost. For more information, see Capacity considerations (https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html) in the Amazon EKS User Guide. #[serde(default, skip_serializing_if = "Option::is_none", rename = "controlPlanePlacement")] pub control_plane_placement: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "outpostARNs")] pub outpost_ar_ns: Option>, } -/// The placement configuration for all the control plane instances of your local Amazon EKS cluster on an Amazon Web Services Outpost. For more information, see Capacity considerations (https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html) in the Amazon EKS User Guide +/// The placement configuration for all the control plane instances of your local Amazon EKS cluster on an Amazon Web Services Outpost. For more information, see Capacity considerations (https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html) in the Amazon EKS User Guide. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterOutpostConfigControlPlanePlacement { #[serde(default, skip_serializing_if = "Option::is_none", rename = "groupName")] diff --git a/kube-custom-resources-rs/src/flink_apache_org/v1beta1/flinkdeployments.rs b/kube-custom-resources-rs/src/flink_apache_org/v1beta1/flinkdeployments.rs index 6006ee830..6ccda65eb 100644 --- a/kube-custom-resources-rs/src/flink_apache_org/v1beta1/flinkdeployments.rs +++ b/kube-custom-resources-rs/src/flink_apache_org/v1beta1/flinkdeployments.rs @@ -66,7 +66,19 @@ pub struct FlinkDeploymentIngress { #[serde(default, skip_serializing_if = "Option::is_none", rename = "className")] pub class_name: Option, #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] pub template: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tls: Option>, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct FlinkDeploymentIngressTls { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub hosts: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] + pub secret_name: Option, } #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] @@ -85,6 +97,8 @@ pub struct FlinkDeploymentJob { pub jar_uri: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub parallelism: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "savepointRedeployNonce")] + pub savepoint_redeploy_nonce: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "savepointTriggerNonce")] pub savepoint_trigger_nonce: Option, #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/kube-custom-resources-rs/src/flink_apache_org/v1beta1/flinksessionjobs.rs b/kube-custom-resources-rs/src/flink_apache_org/v1beta1/flinksessionjobs.rs index 6d1501884..59df2096a 100644 --- a/kube-custom-resources-rs/src/flink_apache_org/v1beta1/flinksessionjobs.rs +++ b/kube-custom-resources-rs/src/flink_apache_org/v1beta1/flinksessionjobs.rs @@ -38,6 +38,8 @@ pub struct FlinkSessionJobJob { pub jar_uri: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub parallelism: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "savepointRedeployNonce")] + pub savepoint_redeploy_nonce: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "savepointTriggerNonce")] pub savepoint_trigger_nonce: Option, #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/kube-custom-resources-rs/src/flows_netobserv_io/v1beta1/flowcollectors.rs b/kube-custom-resources-rs/src/flows_netobserv_io/v1beta1/flowcollectors.rs index 5dff87be3..eca643dd4 100644 --- a/kube-custom-resources-rs/src/flows_netobserv_io/v1beta1/flowcollectors.rs +++ b/kube-custom-resources-rs/src/flows_netobserv_io/v1beta1/flowcollectors.rs @@ -68,7 +68,7 @@ pub struct FlowCollectorAgentEbpf { /// `excludeInterfaces` contains the interface names that are excluded from flow tracing. An entry enclosed by slashes, such as `/br-/`, is matched as a regular expression. Otherwise it is matched as a case-sensitive string. #[serde(default, skip_serializing_if = "Option::is_none", rename = "excludeInterfaces")] pub exclude_interfaces: Option>, - /// List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are:
- `PacketDrop`: enable the packets drop flows logging feature. This feature requires mounting the kernel debug filesystem, so the eBPF pod has to run as privileged. If the `spec.agent.eBPF.privileged` parameter is not set, an error is reported.
- `DNSTracking`: enable the DNS tracking feature.
- `FlowRTT` [unsupported (*)]: enable flow latency (RTT) calculations in the eBPF agent during TCP handshakes. This feature better works with `sampling` set to 1.
+ /// List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are:
- `PacketDrop`: enable the packets drop flows logging feature. This feature requires mounting the kernel debug filesystem, so the eBPF pod has to run as privileged. If the `spec.agent.ebpf.privileged` parameter is not set, an error is reported.
- `DNSTracking`: enable the DNS tracking feature.
- `FlowRTT` [unsupported (*)]: enable flow latency (RTT) calculations in the eBPF agent during TCP handshakes. This feature better works with `sampling` set to 1.
#[serde(default, skip_serializing_if = "Option::is_none")] pub features: Option>, /// `imagePullPolicy` is the Kubernetes pull policy for the image defined above diff --git a/kube-custom-resources-rs/src/flows_netobserv_io/v1beta2/flowcollectors.rs b/kube-custom-resources-rs/src/flows_netobserv_io/v1beta2/flowcollectors.rs index 31f927d65..4eb5356a3 100644 --- a/kube-custom-resources-rs/src/flows_netobserv_io/v1beta2/flowcollectors.rs +++ b/kube-custom-resources-rs/src/flows_netobserv_io/v1beta2/flowcollectors.rs @@ -19,13 +19,13 @@ pub struct FlowCollectorSpec { /// `consolePlugin` defines the settings related to the OpenShift Console plugin, when available. #[serde(default, skip_serializing_if = "Option::is_none", rename = "consolePlugin")] pub console_plugin: Option, - /// `deploymentModel` defines the desired type of deployment for flow processing. Possible values are:
- `DIRECT` (default) to make the flow processor listening directly from the agents.
- `KAFKA` to make flows sent to a Kafka pipeline before consumption by the processor.
Kafka can provide better scalability, resiliency, and high availability (for more details, see https://www.redhat.com/en/topics/integration/what-is-apache-kafka). + /// `deploymentModel` defines the desired type of deployment for flow processing. Possible values are:
- `Direct` (default) to make the flow processor listening directly from the agents.
- `Kafka` to make flows sent to a Kafka pipeline before consumption by the processor.
Kafka can provide better scalability, resiliency, and high availability (for more details, see https://www.redhat.com/en/topics/integration/what-is-apache-kafka). #[serde(default, skip_serializing_if = "Option::is_none", rename = "deploymentModel")] pub deployment_model: Option, /// `exporters` define additional optional exporters for custom consumption or storage. #[serde(default, skip_serializing_if = "Option::is_none")] pub exporters: Option>, - /// Kafka configuration, allowing to use Kafka as a broker as part of the flow collection pipeline. Available when the `spec.deploymentModel` is `KAFKA`. + /// Kafka configuration, allowing to use Kafka as a broker as part of the flow collection pipeline. Available when the `spec.deploymentModel` is `Kafka`. #[serde(default, skip_serializing_if = "Option::is_none")] pub kafka: Option, /// `loki`, the flow store, client settings. @@ -42,18 +42,18 @@ pub struct FlowCollectorSpec { /// Agent configuration for flows extraction. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct FlowCollectorAgent { - /// `ebpf` describes the settings related to the eBPF-based flow reporter when `spec.agent.type` is set to `EBPF`. + /// `ebpf` describes the settings related to the eBPF-based flow reporter when `spec.agent.type` is set to `eBPF`. #[serde(default, skip_serializing_if = "Option::is_none")] pub ebpf: Option, /// `ipfix` [deprecated (*)] - describes the settings related to the IPFIX-based flow reporter when `spec.agent.type` is set to `IPFIX`. #[serde(default, skip_serializing_if = "Option::is_none")] pub ipfix: Option, - /// `type` selects the flows tracing agent. Possible values are:
- `EBPF` (default) to use NetObserv eBPF agent.
- `IPFIX` [deprecated (*)] - to use the legacy IPFIX collector.
`EBPF` is recommended as it offers better performances and should work regardless of the CNI installed on the cluster. `IPFIX` works with OVN-Kubernetes CNI (other CNIs could work if they support exporting IPFIX, but they would require manual configuration). + /// `type` selects the flows tracing agent. Possible values are:
- `eBPF` (default) to use NetObserv eBPF agent.
- `IPFIX` [deprecated (*)] - to use the legacy IPFIX collector.
`eBPF` is recommended as it offers better performances and should work regardless of the CNI installed on the cluster. `IPFIX` works with OVN-Kubernetes CNI (other CNIs could work if they support exporting IPFIX, but they would require manual configuration). #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// `ebpf` describes the settings related to the eBPF-based flow reporter when `spec.agent.type` is set to `EBPF`. +/// `ebpf` describes the settings related to the eBPF-based flow reporter when `spec.agent.type` is set to `eBPF`. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct FlowCollectorAgentEbpf { /// `cacheActiveTimeout` is the max period during which the reporter aggregates flows before sending. Increasing `cacheMaxFlows` and `cacheActiveTimeout` can decrease the network traffic overhead and the CPU load, however you can expect higher memory consumption and an increased latency in the flow collection. @@ -68,7 +68,7 @@ pub struct FlowCollectorAgentEbpf { /// `excludeInterfaces` contains the interface names that are excluded from flow tracing. An entry enclosed by slashes, such as `/br-/`, is matched as a regular expression. Otherwise it is matched as a case-sensitive string. #[serde(default, skip_serializing_if = "Option::is_none", rename = "excludeInterfaces")] pub exclude_interfaces: Option>, - /// List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are:
- `PacketDrop`: enable the packets drop flows logging feature. This feature requires mounting the kernel debug filesystem, so the eBPF pod has to run as privileged. If the `spec.agent.eBPF.privileged` parameter is not set, an error is reported.
- `DNSTracking`: enable the DNS tracking feature.
- `FlowRTT` [unsupported (*)]: enable flow latency (RTT) calculations in the eBPF agent during TCP handshakes. This feature better works with `sampling` set to 1.
+ /// List of additional features to enable. They are all disabled by default. Enabling additional features might have performance impacts. Possible values are:
- `PacketDrop`: enable the packets drop flows logging feature. This feature requires mounting the kernel debug filesystem, so the eBPF pod has to run as privileged. If the `spec.agent.ebpf.privileged` parameter is not set, an error is reported.
- `DNSTracking`: enable the DNS tracking feature.
- `FlowRTT`: enable flow latency (RTT) calculations in the eBPF agent during TCP handshakes. This feature better works with `sampling` set to 1.
#[serde(default, skip_serializing_if = "Option::is_none")] pub features: Option>, /// `imagePullPolicy` is the Kubernetes pull policy for the image defined above @@ -102,7 +102,7 @@ pub struct FlowCollectorAgentEbpfDebug { pub env: Option>, } -/// `ebpf` describes the settings related to the eBPF-based flow reporter when `spec.agent.type` is set to `EBPF`. +/// `ebpf` describes the settings related to the eBPF-based flow reporter when `spec.agent.type` is set to `eBPF`. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum FlowCollectorAgentEbpfImagePullPolicy { IfNotPresent, @@ -110,7 +110,7 @@ pub enum FlowCollectorAgentEbpfImagePullPolicy { Never, } -/// `ebpf` describes the settings related to the eBPF-based flow reporter when `spec.agent.type` is set to `EBPF`. +/// `ebpf` describes the settings related to the eBPF-based flow reporter when `spec.agent.type` is set to `eBPF`. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum FlowCollectorAgentEbpfLogLevel { #[serde(rename = "trace")] @@ -200,8 +200,8 @@ pub struct FlowCollectorAgentIpfixOvnKubernetes { /// Agent configuration for flows extraction. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum FlowCollectorAgentType { - #[serde(rename = "EBPF")] - Ebpf, + #[serde(rename = "eBPF")] + EBpf, #[serde(rename = "IPFIX")] Ipfix, } @@ -253,7 +253,7 @@ pub struct FlowCollectorConsolePluginAutoscaler { /// `minReplicas` is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minReplicas")] pub min_replicas: Option, - /// `status` describes the desired status regarding deploying an horizontal pod autoscaler.
- `DISABLED` does not deploy an horizontal pod autoscaler.
- `ENABLED` deploys an horizontal pod autoscaler.
+ /// `status` describes the desired status regarding deploying an horizontal pod autoscaler.
- `Disabled` does not deploy an horizontal pod autoscaler.
- `Enabled` deploys an horizontal pod autoscaler.
#[serde(default, skip_serializing_if = "Option::is_none")] pub status: Option, } @@ -530,9 +530,7 @@ pub struct FlowCollectorConsolePluginAutoscalerMetricsResourceTarget { /// `autoscaler` spec of a horizontal pod autoscaler to set up for the plugin Deployment. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum FlowCollectorConsolePluginAutoscalerStatus { - #[serde(rename = "DISABLED")] Disabled, - #[serde(rename = "ENABLED")] Enabled, } @@ -612,9 +610,7 @@ pub struct FlowCollectorConsolePluginResourcesClaims { /// Defines the desired state of the FlowCollector resource.

*: the mention of "unsupported", or "deprecated" for a feature throughout this document means that this feature is not officially supported by Red Hat. It might have been, for instance, contributed by the community and accepted without a formal agreement for maintenance. The product maintainers might provide some support for these features as a best effort only. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum FlowCollectorDeploymentModel { - #[serde(rename = "DIRECT")] Direct, - #[serde(rename = "KAFKA")] Kafka, } @@ -627,7 +623,7 @@ pub struct FlowCollectorExporters { /// Kafka configuration, such as the address and topic, to send enriched flows to. #[serde(default, skip_serializing_if = "Option::is_none")] pub kafka: Option, - /// `type` selects the type of exporters. The available options are `KAFKA` and `IPFIX`. + /// `type` selects the type of exporters. The available options are `Kafka` and `IPFIX`. #[serde(rename = "type")] pub r#type: FlowCollectorExportersType, } @@ -679,7 +675,7 @@ pub struct FlowCollectorExportersKafkaSasl { /// Reference to the secret or config map containing the client secret #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientSecretReference")] pub client_secret_reference: Option, - /// Type of SASL authentication to use, or `DISABLED` if SASL is not used + /// Type of SASL authentication to use, or `Disabled` if SASL is not used #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } @@ -739,11 +735,9 @@ pub enum FlowCollectorExportersKafkaSaslClientSecretReferenceType { /// SASL authentication configuration. [Unsupported (*)]. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum FlowCollectorExportersKafkaSaslType { - #[serde(rename = "DISABLED")] Disabled, - #[serde(rename = "PLAIN")] Plain, - #[serde(rename = "SCRAM-SHA512")] + #[serde(rename = "ScramSHA512")] ScramSha512, } @@ -825,13 +819,12 @@ pub enum FlowCollectorExportersKafkaTlsUserCertType { /// `FlowCollectorExporter` defines an additional exporter to send enriched flows to. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum FlowCollectorExportersType { - #[serde(rename = "KAFKA")] Kafka, #[serde(rename = "IPFIX")] Ipfix, } -/// Kafka configuration, allowing to use Kafka as a broker as part of the flow collection pipeline. Available when the `spec.deploymentModel` is `KAFKA`. +/// Kafka configuration, allowing to use Kafka as a broker as part of the flow collection pipeline. Available when the `spec.deploymentModel` is `Kafka`. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct FlowCollectorKafka { /// Address of the Kafka server @@ -855,7 +848,7 @@ pub struct FlowCollectorKafkaSasl { /// Reference to the secret or config map containing the client secret #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientSecretReference")] pub client_secret_reference: Option, - /// Type of SASL authentication to use, or `DISABLED` if SASL is not used + /// Type of SASL authentication to use, or `Disabled` if SASL is not used #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } @@ -915,11 +908,9 @@ pub enum FlowCollectorKafkaSaslClientSecretReferenceType { /// SASL authentication configuration. [Unsupported (*)]. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum FlowCollectorKafkaSaslType { - #[serde(rename = "DISABLED")] Disabled, - #[serde(rename = "PLAIN")] Plain, - #[serde(rename = "SCRAM-SHA512")] + #[serde(rename = "ScramSHA512")] ScramSha512, } @@ -1056,7 +1047,7 @@ pub struct FlowCollectorLokiLokiStack { /// Loki configuration for "Manual" mode. This is the most flexible configuration. It is ignored for other modes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct FlowCollectorLokiManual { - /// `authToken` describes the way to get a token to authenticate to Loki.
- `DISABLED` does not send any token with the request.
- `FORWARD` forwards the user token for authorization.
- `HOST` [deprecated (*)] - uses the local pod service account to authenticate to Loki.
When using the Loki Operator, this must be set to `FORWARD`. + /// `authToken` describes the way to get a token to authenticate to Loki.
- `Disabled` does not send any token with the request.
- `Forward` forwards the user token for authorization.
- `Host` [deprecated (*)] - uses the local pod service account to authenticate to Loki.
When using the Loki Operator, this must be set to `Forward`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "authToken")] pub auth_token: Option, /// `ingesterUrl` is the address of an existing Loki ingester service to push the flows to. When using the Loki Operator, set it to the Loki gateway service with the `network` tenant set in path, for example https://loki-gateway-http.netobserv.svc:8080/api/logs/v1/network. @@ -1082,11 +1073,8 @@ pub struct FlowCollectorLokiManual { /// Loki configuration for "Manual" mode. This is the most flexible configuration. It is ignored for other modes. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum FlowCollectorLokiManualAuthToken { - #[serde(rename = "DISABLED")] Disabled, - #[serde(rename = "HOST")] Host, - #[serde(rename = "FORWARD")] Forward, } @@ -1475,7 +1463,7 @@ pub struct FlowCollectorProcessor { /// `logLevel` of the processor runtime #[serde(default, skip_serializing_if = "Option::is_none", rename = "logLevel")] pub log_level: Option, - /// `logTypes` defines the desired record types to generate. Possible values are:
- `FLOWS` (default) to export regular network flows
- `CONVERSATIONS` to generate events for started conversations, ended conversations as well as periodic "tick" updates
- `ENDED_CONVERSATIONS` to generate only ended conversations events
- `ALL` to generate both network flows and all conversations events
+ /// `logTypes` defines the desired record types to generate. Possible values are:
- `Flows` (default) to export regular network flows
- `Conversations` to generate events for started conversations, ended conversations as well as periodic "tick" updates
- `EndedConversations` to generate only ended conversations events
- `All` to generate both network flows and all conversations events
#[serde(default, skip_serializing_if = "Option::is_none", rename = "logTypes")] pub log_types: Option, /// `Metrics` define the processor configuration regarding metrics @@ -1523,7 +1511,7 @@ pub struct FlowCollectorProcessorKafkaConsumerAutoscaler { /// `minReplicas` is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minReplicas")] pub min_replicas: Option, - /// `status` describes the desired status regarding deploying an horizontal pod autoscaler.
- `DISABLED` does not deploy an horizontal pod autoscaler.
- `ENABLED` deploys an horizontal pod autoscaler.
+ /// `status` describes the desired status regarding deploying an horizontal pod autoscaler.
- `Disabled` does not deploy an horizontal pod autoscaler.
- `Enabled` deploys an horizontal pod autoscaler.
#[serde(default, skip_serializing_if = "Option::is_none")] pub status: Option, } @@ -1800,9 +1788,7 @@ pub struct FlowCollectorProcessorKafkaConsumerAutoscalerMetricsResourceTarget { /// `kafkaConsumerAutoscaler` is the spec of a horizontal pod autoscaler to set up for `flowlogs-pipeline-transformer`, which consumes Kafka messages. This setting is ignored when Kafka is disabled. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum FlowCollectorProcessorKafkaConsumerAutoscalerStatus { - #[serde(rename = "DISABLED")] Disabled, - #[serde(rename = "ENABLED")] Enabled, } @@ -1828,13 +1814,9 @@ pub enum FlowCollectorProcessorLogLevel { /// `processor` defines the settings of the component that receives the flows from the agent, enriches them, generates metrics, and forwards them to the Loki persistence layer and/or any available exporter. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum FlowCollectorProcessorLogTypes { - #[serde(rename = "FLOWS")] Flows, - #[serde(rename = "CONVERSATIONS")] Conversations, - #[serde(rename = "ENDED_CONVERSATIONS")] EndedConversations, - #[serde(rename = "ALL")] All, } @@ -1869,18 +1851,18 @@ pub struct FlowCollectorProcessorMetricsServerTls { /// `insecureSkipVerify` allows skipping client-side verification of the provided certificate. If set to `true`, the `providedCaFile` field is ignored. #[serde(default, skip_serializing_if = "Option::is_none", rename = "insecureSkipVerify")] pub insecure_skip_verify: Option, - /// TLS configuration when `type` is set to `PROVIDED`. + /// TLS configuration when `type` is set to `Provided`. #[serde(default, skip_serializing_if = "Option::is_none")] pub provided: Option, - /// Reference to the CA file when `type` is set to `PROVIDED`. + /// Reference to the CA file when `type` is set to `Provided`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "providedCaFile")] pub provided_ca_file: Option, - /// Select the type of TLS configuration:
- `DISABLED` (default) to not configure TLS for the endpoint. - `PROVIDED` to manually provide cert file and a key file. - `AUTO` to use OpenShift auto generated certificate using annotations. + /// Select the type of TLS configuration:
- `Disabled` (default) to not configure TLS for the endpoint. - `Provided` to manually provide cert file and a key file. - `Auto` to use OpenShift auto generated certificate using annotations. #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// TLS configuration when `type` is set to `PROVIDED`. +/// TLS configuration when `type` is set to `Provided`. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct FlowCollectorProcessorMetricsServerTlsProvided { /// `certFile` defines the path to the certificate file name within the config map or secret @@ -1900,7 +1882,7 @@ pub struct FlowCollectorProcessorMetricsServerTlsProvided { pub r#type: Option, } -/// TLS configuration when `type` is set to `PROVIDED`. +/// TLS configuration when `type` is set to `Provided`. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum FlowCollectorProcessorMetricsServerTlsProvidedType { #[serde(rename = "configmap")] @@ -1909,7 +1891,7 @@ pub enum FlowCollectorProcessorMetricsServerTlsProvidedType { Secret, } -/// Reference to the CA file when `type` is set to `PROVIDED`. +/// Reference to the CA file when `type` is set to `Provided`. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct FlowCollectorProcessorMetricsServerTlsProvidedCaFile { /// File name within the config map or secret @@ -1926,7 +1908,7 @@ pub struct FlowCollectorProcessorMetricsServerTlsProvidedCaFile { pub r#type: Option, } -/// Reference to the CA file when `type` is set to `PROVIDED`. +/// Reference to the CA file when `type` is set to `Provided`. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum FlowCollectorProcessorMetricsServerTlsProvidedCaFileType { #[serde(rename = "configmap")] @@ -1938,11 +1920,8 @@ pub enum FlowCollectorProcessorMetricsServerTlsProvidedCaFileType { /// TLS configuration. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum FlowCollectorProcessorMetricsServerTlsType { - #[serde(rename = "DISABLED")] Disabled, - #[serde(rename = "PROVIDED")] Provided, - #[serde(rename = "AUTO")] Auto, } diff --git a/kube-custom-resources-rs/src/gitops_hybrid_cloud_patterns_io/v1alpha1/patterns.rs b/kube-custom-resources-rs/src/gitops_hybrid_cloud_patterns_io/v1alpha1/patterns.rs index af19d51ec..f296db960 100644 --- a/kube-custom-resources-rs/src/gitops_hybrid_cloud_patterns_io/v1alpha1/patterns.rs +++ b/kube-custom-resources-rs/src/gitops_hybrid_cloud_patterns_io/v1alpha1/patterns.rs @@ -58,12 +58,18 @@ pub struct PatternGitSpec { /// Interval in seconds to poll for drifts between origin and target repositories. Default: 180 seconds #[serde(default, skip_serializing_if = "Option::is_none", rename = "pollInterval")] pub poll_interval: Option, - /// Git repo containing the pattern to deploy. Must use https/http + /// Git repo containing the pattern to deploy. Must use https/http or, for ssh, git@server:foo/bar.git #[serde(rename = "targetRepo")] pub target_repo: String, /// Branch, tag, or commit to deploy. Does not support short-sha's. Default: HEAD #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetRevision")] pub target_revision: Option, + /// Optional. K8s secret name where the info for connecting to git can be found. The supported secrets are modeled after the private repositories in argo (https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#repositories) currently ssh and username+password are supported + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tokenSecret")] + pub token_secret: Option, + /// Optional. K8s secret namespace where the token for connecting to git can be found + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tokenSecretNamespace")] + pub token_secret_namespace: Option, } #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] @@ -114,6 +120,8 @@ pub struct PatternStatus { /// Last action related to the pattern #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastStep")] pub last_step: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, /// Number of updates to the pattern #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, diff --git a/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2beta1/helmreleases.rs b/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2beta1/helmreleases.rs index b22b53f07..9d5dee802 100644 --- a/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2beta1/helmreleases.rs +++ b/kube-custom-resources-rs/src/helm_toolkit_fluxcd_io/v2beta1/helmreleases.rs @@ -19,6 +19,10 @@ pub struct HelmReleaseSpec { /// DependsOn may contain a meta.NamespacedObjectReference slice with references to HelmRelease resources that must be ready before this HelmRelease can be reconciled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dependsOn")] pub depends_on: Option>, + /// DriftDetection holds the configuration for detecting and handling differences between the manifest in the Helm storage and the resources currently existing in the cluster. + /// Note: this field is provisional to the v2beta2 API, and not actively used by v2beta1 HelmReleases. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "driftDetection")] + pub drift_detection: Option, /// Install holds the configuration for Helm install actions for this HelmRelease. #[serde(default, skip_serializing_if = "Option::is_none")] pub install: Option, @@ -190,6 +194,66 @@ pub struct HelmReleaseDependsOn { pub namespace: Option, } +/// DriftDetection holds the configuration for detecting and handling differences between the manifest in the Helm storage and the resources currently existing in the cluster. +/// Note: this field is provisional to the v2beta2 API, and not actively used by v2beta1 HelmReleases. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct HelmReleaseDriftDetection { + /// Ignore contains a list of rules for specifying which changes to ignore during diffing. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub ignore: Option>, + /// Mode defines how differences should be handled between the Helm manifest and the manifest currently applied to the cluster. If not explicitly set, it defaults to DiffModeDisabled. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub mode: Option, +} + +/// IgnoreRule defines a rule to selectively disregard specific changes during the drift detection process. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct HelmReleaseDriftDetectionIgnore { + /// Paths is a list of JSON Pointer (RFC 6901) paths to be excluded from consideration in a Kubernetes object. + pub paths: Vec, + /// Target is a selector for specifying Kubernetes objects to which this rule applies. If Target is not set, the Paths will be ignored for all Kubernetes objects within the manifest of the Helm release. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub target: Option, +} + +/// Target is a selector for specifying Kubernetes objects to which this rule applies. If Target is not set, the Paths will be ignored for all Kubernetes objects within the manifest of the Helm release. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct HelmReleaseDriftDetectionIgnoreTarget { + /// AnnotationSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource annotations. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "annotationSelector")] + pub annotation_selector: Option, + /// Group is the API group to select resources from. Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md + #[serde(default, skip_serializing_if = "Option::is_none")] + pub group: Option, + /// Kind of the API Group to select resources from. Together with Group and Version it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// LabelSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource labels. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + /// Name to match resources with. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace to select resources from. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + /// Version of the API Group to select resources from. Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md + #[serde(default, skip_serializing_if = "Option::is_none")] + pub version: Option, +} + +/// DriftDetection holds the configuration for detecting and handling differences between the manifest in the Helm storage and the resources currently existing in the cluster. +/// Note: this field is provisional to the v2beta2 API, and not actively used by v2beta1 HelmReleases. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum HelmReleaseDriftDetectionMode { + #[serde(rename = "enabled")] + Enabled, + #[serde(rename = "warn")] + Warn, + #[serde(rename = "disabled")] + Disabled, +} + /// Install holds the configuration for Helm install actions for this HelmRelease. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct HelmReleaseInstall { @@ -623,9 +687,17 @@ pub struct HelmReleaseStatus { /// LastAttemptedValuesChecksum is the SHA1 checksum of the values of the last reconciliation attempt. #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastAttemptedValuesChecksum")] pub last_attempted_values_checksum: Option, + /// LastHandledForceAt holds the value of the most recent force request value, so a change of the annotation value can be detected. + /// Note: this field is provisional to the v2beta2 API, and not actively used by v2beta1 HelmReleases. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastHandledForceAt")] + pub last_handled_force_at: Option, /// LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change of the annotation value can be detected. #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastHandledReconcileAt")] pub last_handled_reconcile_at: Option, + /// LastHandledResetAt holds the value of the most recent reset request value, so a change of the annotation value can be detected. + /// Note: this field is provisional to the v2beta2 API, and not actively used by v2beta1 HelmReleases. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastHandledResetAt")] + pub last_handled_reset_at: Option, /// LastReleaseRevision is the revision of the last successful Helm release. #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastReleaseRevision")] pub last_release_revision: Option, diff --git a/kube-custom-resources-rs/src/iam_services_k8s_aws/v1alpha1/roles.rs b/kube-custom-resources-rs/src/iam_services_k8s_aws/v1alpha1/roles.rs index c1ed7d552..c758f5b12 100644 --- a/kube-custom-resources-rs/src/iam_services_k8s_aws/v1alpha1/roles.rs +++ b/kube-custom-resources-rs/src/iam_services_k8s_aws/v1alpha1/roles.rs @@ -29,18 +29,21 @@ pub struct RoleSpec { #[serde(default, skip_serializing_if = "Option::is_none", rename = "inlinePolicies")] pub inline_policies: Option>, /// The 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 value of one hour is applied. This setting can have a value from 1 hour to 12 hours. - /// Anyone who assumes the role from the or API can use the DurationSeconds API parameter or the duration-seconds CLI parameter to request a longer session. The MaxSessionDuration setting determines the maximum duration that can be requested using the DurationSeconds parameter. If users don't specify a value for the DurationSeconds parameter, their security credentials are valid for one hour by default. This applies when you use the AssumeRole* API operations or the assume-role* CLI operations but does not apply when you use those operations to create a console URL. For more information, see Using IAM roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) in the IAM User Guide. + /// Anyone who assumes the role from the CLI or API can use the DurationSeconds API parameter or the duration-seconds CLI parameter to request a longer session. The MaxSessionDuration setting determines the maximum duration that can be requested using the DurationSeconds parameter. If users don't specify a value for the DurationSeconds parameter, their security credentials are valid for one hour by default. This applies when you use the AssumeRole* API operations or the assume-role* CLI operations but does not apply when you use those operations to create a console URL. For more information, see Using IAM roles (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) in the IAM User Guide. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxSessionDuration")] pub max_session_duration: Option, /// The name of the role to create. - /// IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both "MyResource" and "myresource". + /// IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both "MyResource" and "myresource". + /// This parameter allows (through its regex pattern (http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- pub name: String, /// The path to the role. For more information about paths, see IAM Identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the IAM User Guide. /// This parameter is optional. If it is not included, it defaults to a slash (/). /// This parameter allows (through its regex pattern (http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (\u0021) through the DEL character (\u007F), including most punctuation characters, digits, and upper and lowercased letters. #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// The ARN of the policy that is used to set the permissions boundary for the role. + /// The ARN of the managed policy that is used to set the permissions boundary for the role. + /// A permissions boundary policy defines the maximum permissions that identity-based policies can grant to an entity, but does not grant permissions. Permissions boundaries do not define the maximum permissions that a resource-based policy can grant to an entity. To learn more, see Permissions boundaries for IAM entities (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) in the IAM User Guide. + /// For more information about policy types, see Policy types (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policy-types) in the IAM User Guide. #[serde(default, skip_serializing_if = "Option::is_none", rename = "permissionsBoundary")] pub permissions_boundary: Option, /// AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference type to provide more user friendly syntax for references using 'from' field Ex: APIIDRef: @@ -113,7 +116,7 @@ pub struct RoleStatus { /// The stable and unique string identifying the role. For more information about IDs, see IAM identifiers (https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the IAM User Guide. #[serde(default, skip_serializing_if = "Option::is_none", rename = "roleID")] pub role_id: Option, - /// Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see Regions where data is tracked (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period) in the IAM User Guide. + /// Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see Regions where data is tracked (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period) in the IAM user Guide. #[serde(default, skip_serializing_if = "Option::is_none", rename = "roleLastUsed")] pub role_last_used: Option, } @@ -150,7 +153,7 @@ pub struct RoleStatusConditions { pub r#type: String, } -/// Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see Regions where data is tracked (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period) in the IAM User Guide. +/// Contains information about the last time that an IAM role was used. This includes the date and time and the Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be shorter if your Region began supporting these features within the last year. The role might have been used more than 400 days ago. For more information, see Regions where data is tracked (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period) in the IAM user Guide. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct RoleStatusRoleLastUsed { #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastUsedDate")] diff --git a/kube-custom-resources-rs/src/k8s_nginx_org/v1/transportservers.rs b/kube-custom-resources-rs/src/k8s_nginx_org/v1/transportservers.rs index 3ac4afa66..391d32217 100644 --- a/kube-custom-resources-rs/src/k8s_nginx_org/v1/transportservers.rs +++ b/kube-custom-resources-rs/src/k8s_nginx_org/v1/transportservers.rs @@ -89,6 +89,10 @@ pub struct TransportServerUpstreamParameters { /// TransportServerUpstream defines an upstream. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TransportServerUpstreams { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub backup: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "backupPort")] + pub backup_port: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "failTimeout")] pub fail_timeout: Option, /// TransportServerHealthCheck defines the parameters for active Upstream HealthChecks. diff --git a/kube-custom-resources-rs/src/k8s_nginx_org/v1/virtualserverroutes.rs b/kube-custom-resources-rs/src/k8s_nginx_org/v1/virtualserverroutes.rs index f54999184..f5791b610 100644 --- a/kube-custom-resources-rs/src/k8s_nginx_org/v1/virtualserverroutes.rs +++ b/kube-custom-resources-rs/src/k8s_nginx_org/v1/virtualserverroutes.rs @@ -522,6 +522,10 @@ pub struct VirtualServerRouteSubroutesSplitsActionReturn { /// Upstream defines an upstream. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct VirtualServerRouteUpstreams { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub backup: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "backupPort")] + pub backup_port: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "buffer-size")] pub buffer_size: Option, #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/kube-custom-resources-rs/src/k8s_nginx_org/v1/virtualservers.rs b/kube-custom-resources-rs/src/k8s_nginx_org/v1/virtualservers.rs index 7e9178b4d..70091996f 100644 --- a/kube-custom-resources-rs/src/k8s_nginx_org/v1/virtualservers.rs +++ b/kube-custom-resources-rs/src/k8s_nginx_org/v1/virtualservers.rs @@ -638,6 +638,10 @@ pub struct VirtualServerTlsRedirect { /// Upstream defines an upstream. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct VirtualServerUpstreams { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub backup: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "backupPort")] + pub backup_port: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "buffer-size")] pub buffer_size: Option, #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/kube-custom-resources-rs/src/k8s_nginx_org/v1alpha1/transportservers.rs b/kube-custom-resources-rs/src/k8s_nginx_org/v1alpha1/transportservers.rs index 47b08d22d..f691b0050 100644 --- a/kube-custom-resources-rs/src/k8s_nginx_org/v1alpha1/transportservers.rs +++ b/kube-custom-resources-rs/src/k8s_nginx_org/v1alpha1/transportservers.rs @@ -89,6 +89,10 @@ pub struct TransportServerUpstreamParameters { /// TransportServerUpstream defines an upstream. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TransportServerUpstreams { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub backup: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "backupPort")] + pub backup_port: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "failTimeout")] pub fail_timeout: Option, /// TransportServerHealthCheck defines the parameters for active Upstream HealthChecks. diff --git a/kube-custom-resources-rs/src/k8s_otterize_com/v1alpha2/clientintents.rs b/kube-custom-resources-rs/src/k8s_otterize_com/v1alpha2/clientintents.rs index f50cd264f..41dba5c68 100644 --- a/kube-custom-resources-rs/src/k8s_otterize_com/v1alpha2/clientintents.rs +++ b/kube-custom-resources-rs/src/k8s_otterize_com/v1alpha2/clientintents.rs @@ -33,8 +33,10 @@ pub struct ClientIntentsCalls { pub struct ClientIntentsCallsDatabaseResources { #[serde(rename = "databaseName")] pub database_name: String, - pub operations: Vec, - pub table: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub operations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub table: Option, } #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] diff --git a/kube-custom-resources-rs/src/k8s_otterize_com/v1alpha3/clientintents.rs b/kube-custom-resources-rs/src/k8s_otterize_com/v1alpha3/clientintents.rs index 04f98c598..c47d3809e 100644 --- a/kube-custom-resources-rs/src/k8s_otterize_com/v1alpha3/clientintents.rs +++ b/kube-custom-resources-rs/src/k8s_otterize_com/v1alpha3/clientintents.rs @@ -41,8 +41,10 @@ pub struct ClientIntentsCallsHttpResources { pub struct ClientIntentsCallsDatabaseResources { #[serde(rename = "databaseName")] pub database_name: String, - pub operations: Vec, - pub table: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub operations: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub table: Option, } #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshfaultinjections.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshfaultinjections.rs index 5579020e1..dbd572342 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshfaultinjections.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshfaultinjections.rs @@ -19,6 +19,9 @@ pub struct MeshFaultInjectionSpec { /// TargetRef is a reference to the resource the policy takes an effect on. The resource could be either a real store object or virtual resource defined inplace. #[serde(rename = "targetRef")] pub target_ref: MeshFaultInjectionTargetRef, + /// To list makes a match between clients and corresponding configurations + #[serde(default, skip_serializing_if = "Option::is_none")] + pub to: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] @@ -139,3 +142,92 @@ pub enum MeshFaultInjectionTargetRefKind { MeshHttpRoute, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MeshFaultInjectionTo { + /// Default is a configuration specific to the group of destinations referenced in 'targetRef' + #[serde(default, skip_serializing_if = "Option::is_none")] + pub default: Option, + /// TargetRef is a reference to the resource that represents a group of destinations. + #[serde(rename = "targetRef")] + pub target_ref: MeshFaultInjectionToTargetRef, +} + +/// Default is a configuration specific to the group of destinations referenced in 'targetRef' +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MeshFaultInjectionToDefault { + /// Http allows to define list of Http faults between dataplanes. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub http: Option>, +} + +/// FaultInjection defines the configuration of faults between dataplanes. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MeshFaultInjectionToDefaultHttp { + /// Abort defines a configuration of not delivering requests to destination service and replacing the responses from destination dataplane by predefined status code + #[serde(default, skip_serializing_if = "Option::is_none")] + pub abort: Option, + /// Delay defines configuration of delaying a response from a destination + #[serde(default, skip_serializing_if = "Option::is_none")] + pub delay: Option, + /// ResponseBandwidth defines a configuration to limit the speed of responding to the requests + #[serde(default, skip_serializing_if = "Option::is_none", rename = "responseBandwidth")] + pub response_bandwidth: Option, +} + +/// Abort defines a configuration of not delivering requests to destination service and replacing the responses from destination dataplane by predefined status code +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MeshFaultInjectionToDefaultHttpAbort { + /// HTTP status code which will be returned to source side + #[serde(rename = "httpStatus")] + pub http_status: i32, + /// Percentage of requests on which abort will be injected, has to be either int or decimal represented as string. + pub percentage: IntOrString, +} + +/// Delay defines configuration of delaying a response from a destination +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MeshFaultInjectionToDefaultHttpDelay { + /// Percentage of requests on which delay will be injected, has to be either int or decimal represented as string. + pub percentage: IntOrString, + /// The duration during which the response will be delayed + pub value: String, +} + +/// ResponseBandwidth defines a configuration to limit the speed of responding to the requests +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MeshFaultInjectionToDefaultHttpResponseBandwidth { + /// Limit is represented by value measure in gbps, mbps, kbps or bps, e.g. 10kbps + pub limit: String, + /// Percentage of requests on which response bandwidth limit will be either int or decimal represented as string. + pub percentage: IntOrString, +} + +/// TargetRef is a reference to the resource that represents a group of destinations. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MeshFaultInjectionToTargetRef { + /// Kind of the referenced resource + #[serde(default, skip_serializing_if = "Option::is_none")] + pub kind: Option, + /// Mesh is reserved for future use to identify cross mesh resources. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub mesh: Option, + /// Name of the referenced resource. Can only be used with kinds: `MeshService`, `MeshServiceSubset` and `MeshGatewayRoute` + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tags: Option>, +} + +/// TargetRef is a reference to the resource that represents a group of destinations. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum MeshFaultInjectionToTargetRefKind { + Mesh, + MeshSubset, + MeshGateway, + MeshService, + MeshServiceSubset, + #[serde(rename = "MeshHTTPRoute")] + MeshHttpRoute, +} + diff --git a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/backups.rs b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/backups.rs index d0d612c88..2261c2c8c 100644 --- a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/backups.rs +++ b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/backups.rs @@ -14,33 +14,41 @@ use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; #[kube(status = "BackupStatus")] #[kube(schema = "disabled")] pub struct BackupSpec { - /// Affinity is a group of affinity scheduling rules. + /// Affinity to be used in the Backup Pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub affinity: Option, + /// Args to be used in the Backup container. #[serde(default, skip_serializing_if = "Option::is_none")] pub args: Option>, + /// BackoffLimit defines the maximum number of attempts to successfully take a Backup. #[serde(default, skip_serializing_if = "Option::is_none", rename = "backoffLimit")] pub backoff_limit: Option, + /// MariaDBRef is a reference to a MariaDB object. #[serde(rename = "mariaDbRef")] pub maria_db_ref: BackupMariaDbRef, + /// MaxRetentionDays defined the maximum age that Backups should have. Old backup will be cleaned up by the Backup Job. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxRetentionDays")] pub max_retention_days: Option, + /// NodeSelector to be used in the Backup Pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] pub node_selector: Option>, - /// ResourceRequirements describes the compute resource requirements. + /// Resouces describes the compute resource requirements. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// RestartPolicy describes how the container should be restarted. Only one of the following restart policies may be specified. If none of the following policies is specified, the default one is RestartPolicyAlways. + /// RestartPolicy to be added to the Backup Pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "restartPolicy")] - pub restart_policy: Option, + pub restart_policy: Option, + /// Schedule defines when the Backup will be taken. #[serde(default, skip_serializing_if = "Option::is_none")] pub schedule: Option, + /// Storage to be used in the Backup. pub storage: BackupStorage, + /// Tolerations to be used in the Backup Pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub tolerations: Option>, } -/// Affinity is a group of affinity scheduling rules. +/// Affinity to be used in the Backup Pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct BackupAffinity { /// Describes node affinity scheduling rules for the pod. @@ -446,6 +454,7 @@ pub struct BackupAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExe pub values: Option>, } +/// MariaDBRef is a reference to a MariaDB object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct BackupMariaDbRef { /// API version of the referent. @@ -469,11 +478,12 @@ pub struct BackupMariaDbRef { /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids #[serde(default, skip_serializing_if = "Option::is_none")] pub uid: Option, + /// WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. #[serde(default, skip_serializing_if = "Option::is_none", rename = "waitForIt")] pub wait_for_it: Option, } -/// ResourceRequirements describes the compute resource requirements. +/// Resouces describes the compute resource requirements. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct BackupResources { /// Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. @@ -496,24 +506,36 @@ pub struct BackupResourcesClaims { pub name: String, } +/// BackupSpec defines the desired state of Backup +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum BackupRestartPolicy { + Always, + OnFailure, + Never, +} + +/// Schedule defines when the Backup will be taken. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct BackupSchedule { + /// Cron is a cron expression that defines the schedule. pub cron: String, + /// Suspend defines whether the schedule is active or not. #[serde(default, skip_serializing_if = "Option::is_none")] pub suspend: Option, } +/// Storage to be used in the Backup. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct BackupStorage { - /// PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes + /// PersistentVolumeClaim is a Kubernetes PVC specification. #[serde(default, skip_serializing_if = "Option::is_none", rename = "persistentVolumeClaim")] pub persistent_volume_claim: Option, - /// Represents the source of a volume to mount. Only one of its members may be specified. + /// Volume is a Kubernetes volume specification. #[serde(default, skip_serializing_if = "Option::is_none")] pub volume: Option, } -/// PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes +/// PersistentVolumeClaim is a Kubernetes PVC specification. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct BackupStoragePersistentVolumeClaim { /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 @@ -615,7 +637,7 @@ pub struct BackupStoragePersistentVolumeClaimSelectorMatchExpressions { pub values: Option>, } -/// Represents the source of a volume to mount. Only one of its members may be specified. +/// Volume is a Kubernetes volume specification. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct BackupStorageVolume { /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore @@ -1610,6 +1632,7 @@ pub struct BackupTolerations { /// BackupStatus defines the observed state of Backup #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct BackupStatus { + /// Conditions for the Backup object. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, } diff --git a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/connections.rs b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/connections.rs index 84ae8dc1c..f386b6d70 100644 --- a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/connections.rs +++ b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/connections.rs @@ -13,34 +13,46 @@ use std::collections::BTreeMap; #[kube(status = "ConnectionStatus")] #[kube(schema = "disabled")] pub struct ConnectionSpec { + /// Database to use for configuring the Connection. #[serde(default, skip_serializing_if = "Option::is_none")] pub database: Option, + /// HealthCheck to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "healthCheck")] pub health_check: Option, + /// MariaDBRef is a reference to a MariaDB object. #[serde(rename = "mariaDbRef")] pub maria_db_ref: ConnectionMariaDbRef, + /// Params to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none")] pub params: Option>, - /// SecretKeySelector selects a key of a Secret. + /// PasswordSecretKeyRef is a reference to the password to use for configuring the Connection. #[serde(rename = "passwordSecretKeyRef")] pub password_secret_key_ref: ConnectionPasswordSecretKeyRef, + /// SecretName to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] pub secret_name: Option, + /// SecretTemplate to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretTemplate")] pub secret_template: Option, + /// ServiceName to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceName")] pub service_name: Option, + /// Username to use for configuring the Connection. pub username: String, } +/// HealthCheck to be used in the Connection. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ConnectionHealthCheck { + /// Interval used to perform health checks. #[serde(default, skip_serializing_if = "Option::is_none")] pub interval: Option, + /// RetryInterval is the intervañ used to perform health check retries. #[serde(default, skip_serializing_if = "Option::is_none", rename = "retryInterval")] pub retry_interval: Option, } +/// MariaDBRef is a reference to a MariaDB object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ConnectionMariaDbRef { /// API version of the referent. @@ -64,11 +76,12 @@ pub struct ConnectionMariaDbRef { /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids #[serde(default, skip_serializing_if = "Option::is_none")] pub uid: Option, + /// WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. #[serde(default, skip_serializing_if = "Option::is_none", rename = "waitForIt")] pub wait_for_it: Option, } -/// SecretKeySelector selects a key of a Secret. +/// PasswordSecretKeyRef is a reference to the password to use for configuring the Connection. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ConnectionPasswordSecretKeyRef { /// The key of the secret to select from. Must be a valid secret key. @@ -81,24 +94,34 @@ pub struct ConnectionPasswordSecretKeyRef { pub optional: Option, } +/// SecretTemplate to be used in the Connection. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ConnectionSecretTemplate { + /// Annotations to be added to the Secret object. #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, + /// DatabaseKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "databaseKey")] pub database_key: Option, + /// Format to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, + /// HostKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostKey")] pub host_key: Option, + /// Key to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none")] pub key: Option, + /// Labels to be added to the Secret object. #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, + /// PasswordKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordKey")] pub password_key: Option, + /// PortKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "portKey")] pub port_key: Option, + /// UsernameKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "usernameKey")] pub username_key: Option, } @@ -106,6 +129,7 @@ pub struct ConnectionSecretTemplate { /// ConnectionStatus defines the observed state of Connection #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ConnectionStatus { + /// Conditions for the Connection object. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, } diff --git a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/databases.rs b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/databases.rs index 072ee4c0e..4bf88dd53 100644 --- a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/databases.rs +++ b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/databases.rs @@ -12,18 +12,24 @@ use serde::{Serialize, Deserialize}; #[kube(status = "DatabaseStatus")] #[kube(schema = "disabled")] pub struct DatabaseSpec { + /// CharacterSet to use in the Database. #[serde(default, skip_serializing_if = "Option::is_none", rename = "characterSet")] pub character_set: Option, + /// CharacterSet to use in the Database. #[serde(default, skip_serializing_if = "Option::is_none")] pub collate: Option, + /// MariaDBRef is a reference to a MariaDB object. #[serde(rename = "mariaDbRef")] pub maria_db_ref: DatabaseMariaDbRef, + /// Name overrides the default Database name provided by metadata.name. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, + /// RetryInterval is the interval used to perform health check retries. #[serde(default, skip_serializing_if = "Option::is_none", rename = "retryInterval")] pub retry_interval: Option, } +/// MariaDBRef is a reference to a MariaDB object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct DatabaseMariaDbRef { /// API version of the referent. @@ -47,6 +53,7 @@ pub struct DatabaseMariaDbRef { /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids #[serde(default, skip_serializing_if = "Option::is_none")] pub uid: Option, + /// WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. #[serde(default, skip_serializing_if = "Option::is_none", rename = "waitForIt")] pub wait_for_it: Option, } @@ -54,6 +61,7 @@ pub struct DatabaseMariaDbRef { /// DatabaseStatus defines the observed state of Database #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct DatabaseStatus { + /// Conditions for the Database object. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, } diff --git a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/grants.rs b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/grants.rs index b9c3ab892..5db7dba4c 100644 --- a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/grants.rs +++ b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/grants.rs @@ -12,22 +12,31 @@ use serde::{Serialize, Deserialize}; #[kube(status = "GrantStatus")] #[kube(schema = "disabled")] pub struct GrantSpec { + /// Database to use in the Grant. #[serde(default, skip_serializing_if = "Option::is_none")] pub database: Option, + /// GrantOption to use in the Grant. #[serde(default, skip_serializing_if = "Option::is_none", rename = "grantOption")] pub grant_option: Option, + /// Host to use in the Grant. #[serde(default, skip_serializing_if = "Option::is_none")] pub host: Option, + /// MariaDBRef is a reference to a MariaDB object. #[serde(rename = "mariaDbRef")] pub maria_db_ref: GrantMariaDbRef, + /// Privileges to use in the Grant. pub privileges: Vec, + /// RetryInterval is the interval used to perform health check retries. #[serde(default, skip_serializing_if = "Option::is_none", rename = "retryInterval")] pub retry_interval: Option, + /// Table to use in the Grant. #[serde(default, skip_serializing_if = "Option::is_none")] pub table: Option, + /// Username to use in the Grant. pub username: String, } +/// MariaDBRef is a reference to a MariaDB object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GrantMariaDbRef { /// API version of the referent. @@ -51,6 +60,7 @@ pub struct GrantMariaDbRef { /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids #[serde(default, skip_serializing_if = "Option::is_none")] pub uid: Option, + /// WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. #[serde(default, skip_serializing_if = "Option::is_none", rename = "waitForIt")] pub wait_for_it: Option, } @@ -58,6 +68,7 @@ pub struct GrantMariaDbRef { /// GrantStatus defines the observed state of Grant #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct GrantStatus { + /// Conditions for the Grant object. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, } diff --git a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/mariadbs.rs b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/mariadbs.rs index 0aeae8675..71a177376 100644 --- a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/mariadbs.rs +++ b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/mariadbs.rs @@ -14,105 +14,135 @@ use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; #[kube(status = "MariaDBStatus")] #[kube(schema = "disabled")] pub struct MariaDBSpec { - /// Affinity is a group of affinity scheduling rules. + /// Affinity to be used in the Pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub affinity: Option, + /// Args to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none")] pub args: Option>, + /// BootstrapFrom defines a source to bootstrap from. #[serde(default, skip_serializing_if = "Option::is_none", rename = "bootstrapFrom")] pub bootstrap_from: Option, + /// Command to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none")] pub command: Option>, + /// Connection defines templates to configure the general Connection object. #[serde(default, skip_serializing_if = "Option::is_none")] pub connection: Option, + /// Database is the database to be created on bootstrap. #[serde(default, skip_serializing_if = "Option::is_none")] pub database: Option, + /// Env represents the environment variables to be injected in a container. #[serde(default, skip_serializing_if = "Option::is_none")] pub env: Option>, + /// EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")] pub env_from: Option>, - /// Galera allows you to enable multi-master HA via Galera in your MariaDB cluster. + /// Replication configures high availability via Galera. #[serde(default, skip_serializing_if = "Option::is_none")] pub galera: Option, - pub image: String, - /// PullPolicy describes a policy for if/when to pull a container image + /// Image name to be used by the MariaDB instances. The supported format is `:`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub image: Option, + /// ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] - pub image_pull_policy: Option, + pub image_pull_policy: Option, + /// ImagePullSecrets is the list of pull Secrets to be used to pull the image. #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullSecrets")] pub image_pull_secrets: Option>, + /// InheritMetadata defines the metadata to be inherited by children resources. #[serde(default, skip_serializing_if = "Option::is_none", rename = "inheritMetadata")] pub inherit_metadata: Option, + /// InitContainers to be used in the Pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "initContainers")] pub init_containers: Option>, - /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + /// LivenessProbe to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")] pub liveness_probe: Option, + /// Metrics configures metrics and how to scrape them. #[serde(default, skip_serializing_if = "Option::is_none")] pub metrics: Option, + /// MyCnf allows to specify the my.cnf file mounted by Mariadb. #[serde(default, skip_serializing_if = "Option::is_none", rename = "myCnf")] pub my_cnf: Option, - /// Selects a key from a ConfigMap. + /// MyCnfConfigMapKeyRef is a reference to the my.cnf config file provided via a ConfigMap. If not provided, it will be defaulted with reference to a ConfigMap with the contents of the MyCnf field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "myCnfConfigMapKeyRef")] pub my_cnf_config_map_key_ref: Option, + /// NodeSelector to be used in the Pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] pub node_selector: Option>, - /// SecretKeySelector selects a key of a Secret. + /// PasswordSecretKeyRef is a reference to the password of the initial user provided via a Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordSecretKeyRef")] pub password_secret_key_ref: Option, + /// PodAnnotations to add to the Pods metadata. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podAnnotations")] pub pod_annotations: Option>, + /// PodDisruptionBudget defines the budget for replica availability. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podDisruptionBudget")] pub pod_disruption_budget: Option, - /// PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext. + /// SecurityContext holds pod-level security attributes and common container settings. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podSecurityContext")] pub pod_security_context: Option, + /// Port where the instances will be listening for connections. #[serde(default, skip_serializing_if = "Option::is_none")] pub port: Option, + /// PrimaryConnection defines templates to configure the primary Connection object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "primaryConnection")] pub primary_connection: Option, + /// PrimaryService defines templates to configure the primary Service object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "primaryService")] pub primary_service: Option, - /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + /// ReadinessProbe to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readinessProbe")] pub readiness_probe: Option, + /// Replicas indicates the number of instances. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// Replication allows you to enable single-master HA via semi-synchronours replication in your MariaDB cluster. + /// Replication configures high availability via replication. #[serde(default, skip_serializing_if = "Option::is_none")] pub replication: Option, - /// ResourceRequirements describes the compute resource requirements. + /// Resouces describes the compute resource requirements. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// SecretKeySelector selects a key of a Secret. - #[serde(rename = "rootPasswordSecretKeyRef")] - pub root_password_secret_key_ref: MariaDBRootPasswordSecretKeyRef, + /// RootPasswordSecretKeyRef is a reference to a Secret key containing the root password. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "rootPasswordSecretKeyRef")] + pub root_password_secret_key_ref: Option, + /// SecondaryConnection defines templates to configure the secondary Connection object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secondaryConnection")] pub secondary_connection: Option, + /// SecondaryService defines templates to configure the secondary Service object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secondaryService")] pub secondary_service: Option, - /// SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. + /// SecurityContext holds security configuration that will be applied to a container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "securityContext")] pub security_context: Option, + /// Service defines templates to configure the general Service object. #[serde(default, skip_serializing_if = "Option::is_none")] pub service: Option, + /// SidecarContainers to be used in the Pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "sidecarContainers")] pub sidecar_containers: Option>, + /// Tolerations to be used in the Pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub tolerations: Option>, - /// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy. + /// PodDisruptionBudget defines the update strategy for the StatefulSet object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "updateStrategy")] pub update_strategy: Option, + /// Username is the username of the user to be created on bootstrap. #[serde(default, skip_serializing_if = "Option::is_none")] pub username: Option, + /// VolumeClaimTemplate provides a template to define the Pod PVCs. #[serde(rename = "volumeClaimTemplate")] pub volume_claim_template: MariaDBVolumeClaimTemplate, + /// VolumeMounts to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")] pub volume_mounts: Option>, + /// Volumes to be used in the Pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub volumes: Option>, } -/// Affinity is a group of affinity scheduling rules. +/// Affinity to be used in the Pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBAffinity { /// Describes node affinity scheduling rules for the pod. @@ -518,19 +548,21 @@ pub struct MariaDBAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringEx pub values: Option>, } +/// BootstrapFrom defines a source to bootstrap from. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBBootstrapFrom { - /// LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. + /// BackupRef is a reference to a Backup object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "backupRef")] pub backup_ref: Option, + /// FileName is the file within the source to be restored. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fileName")] pub file_name: Option, - /// Represents the source of a volume to mount. Only one of its members may be specified. + /// Volume is a Kubernetes Volume object that contains a backup. #[serde(default, skip_serializing_if = "Option::is_none")] pub volume: Option, } -/// LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. +/// BackupRef is a reference to a Backup object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBBootstrapFromBackupRef { /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? @@ -538,7 +570,7 @@ pub struct MariaDBBootstrapFromBackupRef { pub name: Option, } -/// Represents the source of a volume to mount. Only one of its members may be specified. +/// Volume is a Kubernetes Volume object that contains a backup. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBBootstrapFromVolume { /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore @@ -1510,46 +1542,65 @@ pub struct MariaDBBootstrapFromVolumeVsphereVolume { pub volume_path: String, } +/// Connection defines templates to configure the general Connection object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBConnection { + /// HealthCheck to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "healthCheck")] pub health_check: Option, + /// Params to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none")] pub params: Option>, + /// SecretName to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] pub secret_name: Option, + /// SecretTemplate to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretTemplate")] pub secret_template: Option, + /// ServiceName to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceName")] pub service_name: Option, } +/// HealthCheck to be used in the Connection. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBConnectionHealthCheck { + /// Interval used to perform health checks. #[serde(default, skip_serializing_if = "Option::is_none")] pub interval: Option, + /// RetryInterval is the intervañ used to perform health check retries. #[serde(default, skip_serializing_if = "Option::is_none", rename = "retryInterval")] pub retry_interval: Option, } +/// SecretTemplate to be used in the Connection. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBConnectionSecretTemplate { + /// Annotations to be added to the Secret object. #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, + /// DatabaseKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "databaseKey")] pub database_key: Option, + /// Format to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, + /// HostKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostKey")] pub host_key: Option, + /// Key to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none")] pub key: Option, + /// Labels to be added to the Secret object. #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, + /// PasswordKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordKey")] pub password_key: Option, + /// PortKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "portKey")] pub port_key: Option, + /// UsernameKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "usernameKey")] pub username_key: Option, } @@ -1670,7 +1721,7 @@ pub struct MariaDBEnvFromSecretRef { pub optional: Option, } -/// Galera allows you to enable multi-master HA via Galera in your MariaDB cluster. +/// Replication configures high availability via Galera. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBGalera { /// GaleraAgent is a sidecar agent that co-operates with mariadb-operator. More info: https://github.com/mariadb-operator/agent. @@ -1693,7 +1744,7 @@ pub struct MariaDBGalera { pub replica_threads: Option, /// SST is the Snapshot State Transfer used when new Pods join the cluster. More info: https://galeracluster.com/library/documentation/sst.html. #[serde(default, skip_serializing_if = "Option::is_none")] - pub sst: Option, + pub sst: Option, /// VolumeClaimTemplate is a template for the PVC that will contain the Galera configuration files shared between the InitContainer, Agent and MariaDB. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeClaimTemplate")] pub volume_claim_template: Option, @@ -1702,39 +1753,46 @@ pub struct MariaDBGalera { /// GaleraAgent is a sidecar agent that co-operates with mariadb-operator. More info: https://github.com/mariadb-operator/agent. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBGaleraAgent { + /// Args to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none")] pub args: Option>, + /// Command to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none")] pub command: Option>, + /// Env represents the environment variables to be injected in a container. #[serde(default, skip_serializing_if = "Option::is_none")] pub env: Option>, + /// EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")] pub env_from: Option>, /// GracefulShutdownTimeout is the time we give to the agent container in order to gracefully terminate in-flight requests. #[serde(default, skip_serializing_if = "Option::is_none", rename = "gracefulShutdownTimeout")] pub graceful_shutdown_timeout: Option, - pub image: String, - /// PullPolicy describes a policy for if/when to pull a container image + /// Image name to be used by the MariaDB instances. The supported format is `:`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub image: Option, + /// ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] - pub image_pull_policy: Option, + pub image_pull_policy: Option, /// KubernetesAuth to be used by the agent container #[serde(default, skip_serializing_if = "Option::is_none", rename = "kubernetesAuth")] pub kubernetes_auth: Option, - /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + /// LivenessProbe to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")] pub liveness_probe: Option, - /// Port to be used by the agent container + /// Port where the agent will be listening for connections. #[serde(default, skip_serializing_if = "Option::is_none")] pub port: Option, - /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + /// ReadinessProbe to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readinessProbe")] pub readiness_probe: Option, - /// ResourceRequirements describes the compute resource requirements. + /// Resouces describes the compute resource requirements. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. + /// SecurityContext holds security configuration that will be applied to a container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "securityContext")] pub security_context: Option, + /// VolumeMounts to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")] pub volume_mounts: Option>, } @@ -1855,6 +1913,14 @@ pub struct MariaDBGaleraAgentEnvFromSecretRef { pub optional: Option, } +/// GaleraAgent is a sidecar agent that co-operates with mariadb-operator. More info: https://github.com/mariadb-operator/agent. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum MariaDBGaleraAgentImagePullPolicy { + Always, + Never, + IfNotPresent, +} + /// KubernetesAuth to be used by the agent container #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBGaleraAgentKubernetesAuth { @@ -1866,7 +1932,7 @@ pub struct MariaDBGaleraAgentKubernetesAuth { pub enabled: Option, } -/// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. +/// LivenessProbe to be used in the Container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBGaleraAgentLivenessProbe { /// Exec specifies the action to take. @@ -1958,7 +2024,7 @@ pub struct MariaDBGaleraAgentLivenessProbeTcpSocket { pub port: IntOrString, } -/// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. +/// ReadinessProbe to be used in the Container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBGaleraAgentReadinessProbe { /// Exec specifies the action to take. @@ -2050,7 +2116,7 @@ pub struct MariaDBGaleraAgentReadinessProbeTcpSocket { pub port: IntOrString, } -/// ResourceRequirements describes the compute resource requirements. +/// Resouces describes the compute resource requirements. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBGaleraAgentResources { /// Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. @@ -2073,7 +2139,7 @@ pub struct MariaDBGaleraAgentResourcesClaims { pub name: String, } -/// SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. +/// SecurityContext holds security configuration that will be applied to a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBGaleraAgentSecurityContext { /// AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows. @@ -2193,30 +2259,36 @@ pub struct MariaDBGaleraAgentVolumeMounts { /// InitContainer is an init container that co-operates with mariadb-operator. More info: https://github.com/mariadb-operator/init. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBGaleraInitContainer { + /// Args to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none")] pub args: Option>, + /// Command to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none")] pub command: Option>, + /// Env represents the environment variables to be injected in a container. #[serde(default, skip_serializing_if = "Option::is_none")] pub env: Option>, + /// EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")] pub env_from: Option>, + /// Image name to be used by the MariaDB instances. The supported format is `:`. pub image: String, - /// PullPolicy describes a policy for if/when to pull a container image + /// ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] - pub image_pull_policy: Option, - /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + pub image_pull_policy: Option, + /// LivenessProbe to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")] pub liveness_probe: Option, - /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + /// ReadinessProbe to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readinessProbe")] pub readiness_probe: Option, - /// ResourceRequirements describes the compute resource requirements. + /// Resouces describes the compute resource requirements. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. + /// SecurityContext holds security configuration that will be applied to a container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "securityContext")] pub security_context: Option, + /// VolumeMounts to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")] pub volume_mounts: Option>, } @@ -2337,7 +2409,15 @@ pub struct MariaDBGaleraInitContainerEnvFromSecretRef { pub optional: Option, } -/// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. +/// InitContainer is an init container that co-operates with mariadb-operator. More info: https://github.com/mariadb-operator/init. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum MariaDBGaleraInitContainerImagePullPolicy { + Always, + Never, + IfNotPresent, +} + +/// LivenessProbe to be used in the Container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBGaleraInitContainerLivenessProbe { /// Exec specifies the action to take. @@ -2429,7 +2509,7 @@ pub struct MariaDBGaleraInitContainerLivenessProbeTcpSocket { pub port: IntOrString, } -/// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. +/// ReadinessProbe to be used in the Container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBGaleraInitContainerReadinessProbe { /// Exec specifies the action to take. @@ -2521,7 +2601,7 @@ pub struct MariaDBGaleraInitContainerReadinessProbeTcpSocket { pub port: IntOrString, } -/// ResourceRequirements describes the compute resource requirements. +/// Resouces describes the compute resource requirements. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBGaleraInitContainerResources { /// Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. @@ -2544,7 +2624,7 @@ pub struct MariaDBGaleraInitContainerResourcesClaims { pub name: String, } -/// SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. +/// SecurityContext holds security configuration that will be applied to a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBGaleraInitContainerSecurityContext { /// AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows. @@ -2692,12 +2772,24 @@ pub struct MariaDBGaleraRecovery { pub pod_sync_timeout: Option, } +/// Replication configures high availability via Galera. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum MariaDBGaleraSst { + #[serde(rename = "rsync")] + Rsync, + #[serde(rename = "mariabackup")] + Mariabackup, + #[serde(rename = "mysqldump")] + Mysqldump, +} + /// VolumeClaimTemplate is a template for the PVC that will contain the Galera configuration files shared between the InitContainer, Agent and MariaDB. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBGaleraVolumeClaimTemplate { /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] pub access_modes: Option>, + /// Annotations to be used in the PVC. #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, /// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. @@ -2706,6 +2798,7 @@ pub struct MariaDBGaleraVolumeClaimTemplate { /// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] pub data_source_ref: Option, + /// Labels to be used in the PVC. #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, /// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -2798,6 +2891,14 @@ pub struct MariaDBGaleraVolumeClaimTemplateSelectorMatchExpressions { pub values: Option>, } +/// MariaDBSpec defines the desired state of MariaDB +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum MariaDBImagePullPolicy { + Always, + Never, + IfNotPresent, +} + /// LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBImagePullSecrets { @@ -2806,40 +2907,50 @@ pub struct MariaDBImagePullSecrets { pub name: Option, } +/// InheritMetadata defines the metadata to be inherited by children resources. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBInheritMetadata { + /// Annotations to be added to children resources. #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, + /// Labels to be added to children resources. #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } +/// Container object definition. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBInitContainers { + /// Args to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none")] pub args: Option>, + /// Command to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none")] pub command: Option>, + /// Env represents the environment variables to be injected in a container. #[serde(default, skip_serializing_if = "Option::is_none")] pub env: Option>, + /// EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")] pub env_from: Option>, + /// Image name to be used by the MariaDB instances. The supported format is `:`. pub image: String, - /// PullPolicy describes a policy for if/when to pull a container image + /// ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] - pub image_pull_policy: Option, - /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + pub image_pull_policy: Option, + /// LivenessProbe to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")] pub liveness_probe: Option, - /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + /// ReadinessProbe to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readinessProbe")] pub readiness_probe: Option, - /// ResourceRequirements describes the compute resource requirements. + /// Resouces describes the compute resource requirements. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. + /// SecurityContext holds security configuration that will be applied to a container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "securityContext")] pub security_context: Option, + /// VolumeMounts to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")] pub volume_mounts: Option>, } @@ -2960,7 +3071,15 @@ pub struct MariaDBInitContainersEnvFromSecretRef { pub optional: Option, } -/// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. +/// Container object definition. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum MariaDBInitContainersImagePullPolicy { + Always, + Never, + IfNotPresent, +} + +/// LivenessProbe to be used in the Container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBInitContainersLivenessProbe { /// Exec specifies the action to take. @@ -3052,7 +3171,7 @@ pub struct MariaDBInitContainersLivenessProbeTcpSocket { pub port: IntOrString, } -/// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. +/// ReadinessProbe to be used in the Container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBInitContainersReadinessProbe { /// Exec specifies the action to take. @@ -3144,7 +3263,7 @@ pub struct MariaDBInitContainersReadinessProbeTcpSocket { pub port: IntOrString, } -/// ResourceRequirements describes the compute resource requirements. +/// Resouces describes the compute resource requirements. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBInitContainersResources { /// Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. @@ -3167,7 +3286,7 @@ pub struct MariaDBInitContainersResourcesClaims { pub name: String, } -/// SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. +/// SecurityContext holds security configuration that will be applied to a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBInitContainersSecurityContext { /// AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows. @@ -3284,7 +3403,7 @@ pub struct MariaDBInitContainersVolumeMounts { pub sub_path_expr: Option, } -/// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. +/// LivenessProbe to be used in the Container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBLivenessProbe { /// Exec specifies the action to take. @@ -3376,41 +3495,56 @@ pub struct MariaDBLivenessProbeTcpSocket { pub port: IntOrString, } +/// Metrics configures metrics and how to scrape them. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBMetrics { + /// Enabled is a flag to enable Metrics + #[serde(default, skip_serializing_if = "Option::is_none")] + pub enabled: Option, + /// Exporter defines the metrics exporter container. pub exporter: MariaDBMetricsExporter, + /// ServiceMonitor defines the ServiceMonior object. #[serde(rename = "serviceMonitor")] pub service_monitor: MariaDBMetricsServiceMonitor, } +/// Exporter defines the metrics exporter container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBMetricsExporter { + /// Args to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none")] pub args: Option>, + /// Command to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none")] pub command: Option>, + /// Env represents the environment variables to be injected in a container. #[serde(default, skip_serializing_if = "Option::is_none")] pub env: Option>, + /// EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")] pub env_from: Option>, - pub image: String, - /// PullPolicy describes a policy for if/when to pull a container image + /// Image name to be used by the MariaDB instances. The supported format is `:`. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub image: Option, + /// ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] - pub image_pull_policy: Option, - /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + pub image_pull_policy: Option, + /// LivenessProbe to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")] pub liveness_probe: Option, + /// Port where the exporter will be listening for connections. #[serde(default, skip_serializing_if = "Option::is_none")] pub port: Option, - /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + /// ReadinessProbe to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readinessProbe")] pub readiness_probe: Option, - /// ResourceRequirements describes the compute resource requirements. + /// Resouces describes the compute resource requirements. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. + /// SecurityContext holds security configuration that will be applied to a container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "securityContext")] pub security_context: Option, + /// VolumeMounts to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")] pub volume_mounts: Option>, } @@ -3531,7 +3665,15 @@ pub struct MariaDBMetricsExporterEnvFromSecretRef { pub optional: Option, } -/// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. +/// Exporter defines the metrics exporter container. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum MariaDBMetricsExporterImagePullPolicy { + Always, + Never, + IfNotPresent, +} + +/// LivenessProbe to be used in the Container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBMetricsExporterLivenessProbe { /// Exec specifies the action to take. @@ -3623,7 +3765,7 @@ pub struct MariaDBMetricsExporterLivenessProbeTcpSocket { pub port: IntOrString, } -/// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. +/// ReadinessProbe to be used in the Container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBMetricsExporterReadinessProbe { /// Exec specifies the action to take. @@ -3715,7 +3857,7 @@ pub struct MariaDBMetricsExporterReadinessProbeTcpSocket { pub port: IntOrString, } -/// ResourceRequirements describes the compute resource requirements. +/// Resouces describes the compute resource requirements. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBMetricsExporterResources { /// Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. @@ -3738,7 +3880,7 @@ pub struct MariaDBMetricsExporterResourcesClaims { pub name: String, } -/// SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. +/// SecurityContext holds security configuration that will be applied to a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBMetricsExporterSecurityContext { /// AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows. @@ -3855,17 +3997,21 @@ pub struct MariaDBMetricsExporterVolumeMounts { pub sub_path_expr: Option, } +/// ServiceMonitor defines the ServiceMonior object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBMetricsServiceMonitor { + /// Interval for scraping metrics. #[serde(default, skip_serializing_if = "Option::is_none")] pub interval: Option, + /// PrometheusRelease is the release label to add to the ServiceMonitor object. #[serde(rename = "prometheusRelease")] pub prometheus_release: String, + /// ScrapeTimeout defines the timeout for scraping metrics. #[serde(default, skip_serializing_if = "Option::is_none", rename = "scrapeTimeout")] pub scrape_timeout: Option, } -/// Selects a key from a ConfigMap. +/// MyCnfConfigMapKeyRef is a reference to the my.cnf config file provided via a ConfigMap. If not provided, it will be defaulted with reference to a ConfigMap with the contents of the MyCnf field. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBMyCnfConfigMapKeyRef { /// The key to select. @@ -3878,7 +4024,7 @@ pub struct MariaDBMyCnfConfigMapKeyRef { pub optional: Option, } -/// SecretKeySelector selects a key of a Secret. +/// PasswordSecretKeyRef is a reference to the password of the initial user provided via a Secret. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBPasswordSecretKeyRef { /// The key of the secret to select from. Must be a valid secret key. @@ -3891,15 +4037,18 @@ pub struct MariaDBPasswordSecretKeyRef { pub optional: Option, } +/// PodDisruptionBudget defines the budget for replica availability. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBPodDisruptionBudget { + /// MaxUnavailable defines the number of maximum unavailable Pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")] pub max_unavailable: Option, + /// MinAvailable defines the number of minimum available Pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minAvailable")] pub min_available: Option, } -/// PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext. +/// SecurityContext holds pod-level security attributes and common container settings. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBPodSecurityContext { /// A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: @@ -3991,74 +4140,108 @@ pub struct MariaDBPodSecurityContextWindowsOptions { pub run_as_user_name: Option, } +/// PrimaryConnection defines templates to configure the primary Connection object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBPrimaryConnection { + /// HealthCheck to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "healthCheck")] pub health_check: Option, + /// Params to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none")] pub params: Option>, + /// SecretName to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] pub secret_name: Option, + /// SecretTemplate to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretTemplate")] pub secret_template: Option, + /// ServiceName to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceName")] pub service_name: Option, } +/// HealthCheck to be used in the Connection. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBPrimaryConnectionHealthCheck { + /// Interval used to perform health checks. #[serde(default, skip_serializing_if = "Option::is_none")] pub interval: Option, + /// RetryInterval is the intervañ used to perform health check retries. #[serde(default, skip_serializing_if = "Option::is_none", rename = "retryInterval")] pub retry_interval: Option, } +/// SecretTemplate to be used in the Connection. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBPrimaryConnectionSecretTemplate { + /// Annotations to be added to the Secret object. #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, + /// DatabaseKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "databaseKey")] pub database_key: Option, + /// Format to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, + /// HostKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostKey")] pub host_key: Option, + /// Key to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none")] pub key: Option, + /// Labels to be added to the Secret object. #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, + /// PasswordKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordKey")] pub password_key: Option, + /// PortKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "portKey")] pub port_key: Option, + /// UsernameKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "usernameKey")] pub username_key: Option, } +/// PrimaryService defines templates to configure the primary Service object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBPrimaryService { + /// AllocateLoadBalancerNodePorts Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "allocateLoadBalancerNodePorts")] pub allocate_load_balancer_node_ports: Option, + /// Annotations to add to the Service metadata. #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// ServiceExternalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs. + /// ExternalTrafficPolicy Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "externalTrafficPolicy")] pub external_traffic_policy: Option, + /// Labels to add to the Service metadata. #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, + /// LoadBalancerIP Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerIP")] pub load_balancer_ip: Option, + /// LoadBalancerSourceRanges Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerSourceRanges")] pub load_balancer_source_ranges: Option>, - /// Session Affinity Type string + /// SessionAffinity Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionAffinity")] pub session_affinity: Option, - /// Service Type string describes ingress methods for a service + /// Type is the Service type. One of `ClusterIP`, `NodePort` or `LoadBalancer`. If not defined, it defaults to `ClusterIP`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] - pub r#type: Option, + pub r#type: Option, +} + +/// PrimaryService defines templates to configure the primary Service object. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum MariaDBPrimaryServiceType { + #[serde(rename = "ClusterIP")] + ClusterIp, + NodePort, + LoadBalancer, } -/// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. +/// ReadinessProbe to be used in the Container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBReadinessProbe { /// Exec specifies the action to take. @@ -4150,7 +4333,7 @@ pub struct MariaDBReadinessProbeTcpSocket { pub port: IntOrString, } -/// Replication allows you to enable single-master HA via semi-synchronours replication in your MariaDB cluster. +/// Replication configures high availability via replication. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBReplication { /// Enabled is a flag to enable Replication. @@ -4189,7 +4372,7 @@ pub struct MariaDBReplicationReplica { pub connection_timeout: Option, /// Gtid indicates which Global Transaction ID should be used when connecting a replica to the master. See: https://mariadb.com/kb/en/gtid/#using-current_pos-vs-slave_pos. #[serde(default, skip_serializing_if = "Option::is_none")] - pub gtid: Option, + pub gtid: Option, /// ReplPasswordSecretKeyRef provides a reference to the Secret to use as password for the replication user. #[serde(default, skip_serializing_if = "Option::is_none", rename = "replPasswordSecretKeyRef")] pub repl_password_secret_key_ref: Option, @@ -4198,7 +4381,14 @@ pub struct MariaDBReplicationReplica { pub sync_timeout: Option, /// WaitPoint defines whether the transaction should wait for ACK before committing to the storage engine. More info: https://mariadb.com/kb/en/semisynchronous-replication/#rpl_semi_sync_master_wait_point. #[serde(default, skip_serializing_if = "Option::is_none", rename = "waitPoint")] - pub wait_point: Option, + pub wait_point: Option, +} + +/// ReplicaReplication is the replication configuration for the replica nodes. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum MariaDBReplicationReplicaGtid { + CurrentPos, + SlavePos, } /// ReplPasswordSecretKeyRef provides a reference to the Secret to use as password for the replication user. @@ -4214,7 +4404,14 @@ pub struct MariaDBReplicationReplicaReplPasswordSecretKeyRef { pub optional: Option, } -/// ResourceRequirements describes the compute resource requirements. +/// ReplicaReplication is the replication configuration for the replica nodes. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum MariaDBReplicationReplicaWaitPoint { + AfterSync, + AfterCommit, +} + +/// Resouces describes the compute resource requirements. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBResources { /// Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. @@ -4237,7 +4434,7 @@ pub struct MariaDBResourcesClaims { pub name: String, } -/// SecretKeySelector selects a key of a Secret. +/// RootPasswordSecretKeyRef is a reference to a Secret key containing the root password. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBRootPasswordSecretKeyRef { /// The key of the secret to select from. Must be a valid secret key. @@ -4250,74 +4447,108 @@ pub struct MariaDBRootPasswordSecretKeyRef { pub optional: Option, } +/// SecondaryConnection defines templates to configure the secondary Connection object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBSecondaryConnection { + /// HealthCheck to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "healthCheck")] pub health_check: Option, + /// Params to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none")] pub params: Option>, + /// SecretName to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretName")] pub secret_name: Option, + /// SecretTemplate to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretTemplate")] pub secret_template: Option, + /// ServiceName to be used in the Connection. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceName")] pub service_name: Option, } +/// HealthCheck to be used in the Connection. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBSecondaryConnectionHealthCheck { + /// Interval used to perform health checks. #[serde(default, skip_serializing_if = "Option::is_none")] pub interval: Option, + /// RetryInterval is the intervañ used to perform health check retries. #[serde(default, skip_serializing_if = "Option::is_none", rename = "retryInterval")] pub retry_interval: Option, } +/// SecretTemplate to be used in the Connection. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBSecondaryConnectionSecretTemplate { + /// Annotations to be added to the Secret object. #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, + /// DatabaseKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "databaseKey")] pub database_key: Option, + /// Format to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, + /// HostKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostKey")] pub host_key: Option, + /// Key to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none")] pub key: Option, + /// Labels to be added to the Secret object. #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, + /// PasswordKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "passwordKey")] pub password_key: Option, + /// PortKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "portKey")] pub port_key: Option, + /// UsernameKey to be used in the Secret. #[serde(default, skip_serializing_if = "Option::is_none", rename = "usernameKey")] pub username_key: Option, } +/// SecondaryService defines templates to configure the secondary Service object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBSecondaryService { + /// AllocateLoadBalancerNodePorts Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "allocateLoadBalancerNodePorts")] pub allocate_load_balancer_node_ports: Option, + /// Annotations to add to the Service metadata. #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// ServiceExternalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs. + /// ExternalTrafficPolicy Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "externalTrafficPolicy")] pub external_traffic_policy: Option, + /// Labels to add to the Service metadata. #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, + /// LoadBalancerIP Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerIP")] pub load_balancer_ip: Option, + /// LoadBalancerSourceRanges Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerSourceRanges")] pub load_balancer_source_ranges: Option>, - /// Session Affinity Type string + /// SessionAffinity Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionAffinity")] pub session_affinity: Option, - /// Service Type string describes ingress methods for a service + /// Type is the Service type. One of `ClusterIP`, `NodePort` or `LoadBalancer`. If not defined, it defaults to `ClusterIP`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] - pub r#type: Option, + pub r#type: Option, } -/// SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. +/// SecondaryService defines templates to configure the secondary Service object. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum MariaDBSecondaryServiceType { + #[serde(rename = "ClusterIP")] + ClusterIp, + NodePort, + LoadBalancer, +} + +/// SecurityContext holds security configuration that will be applied to a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBSecurityContext { /// AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows. @@ -4412,55 +4643,77 @@ pub struct MariaDBSecurityContextWindowsOptions { pub run_as_user_name: Option, } +/// Service defines templates to configure the general Service object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBService { + /// AllocateLoadBalancerNodePorts Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "allocateLoadBalancerNodePorts")] pub allocate_load_balancer_node_ports: Option, + /// Annotations to add to the Service metadata. #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// ServiceExternalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs. + /// ExternalTrafficPolicy Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "externalTrafficPolicy")] pub external_traffic_policy: Option, + /// Labels to add to the Service metadata. #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, + /// LoadBalancerIP Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerIP")] pub load_balancer_ip: Option, + /// LoadBalancerSourceRanges Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancerSourceRanges")] pub load_balancer_source_ranges: Option>, - /// Session Affinity Type string + /// SessionAffinity Service field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionAffinity")] pub session_affinity: Option, - /// Service Type string describes ingress methods for a service + /// Type is the Service type. One of `ClusterIP`, `NodePort` or `LoadBalancer`. If not defined, it defaults to `ClusterIP`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] - pub r#type: Option, + pub r#type: Option, } +/// Service defines templates to configure the general Service object. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum MariaDBServiceType { + #[serde(rename = "ClusterIP")] + ClusterIp, + NodePort, + LoadBalancer, +} + +/// Container object definition. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBSidecarContainers { + /// Args to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none")] pub args: Option>, + /// Command to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none")] pub command: Option>, + /// Env represents the environment variables to be injected in a container. #[serde(default, skip_serializing_if = "Option::is_none")] pub env: Option>, + /// EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")] pub env_from: Option>, + /// Image name to be used by the MariaDB instances. The supported format is `:`. pub image: String, - /// PullPolicy describes a policy for if/when to pull a container image + /// ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] - pub image_pull_policy: Option, - /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + pub image_pull_policy: Option, + /// LivenessProbe to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")] pub liveness_probe: Option, - /// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + /// ReadinessProbe to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readinessProbe")] pub readiness_probe: Option, - /// ResourceRequirements describes the compute resource requirements. + /// Resouces describes the compute resource requirements. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. + /// SecurityContext holds security configuration that will be applied to a container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "securityContext")] pub security_context: Option, + /// VolumeMounts to be used in the Container. #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")] pub volume_mounts: Option>, } @@ -4581,7 +4834,15 @@ pub struct MariaDBSidecarContainersEnvFromSecretRef { pub optional: Option, } -/// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. +/// Container object definition. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum MariaDBSidecarContainersImagePullPolicy { + Always, + Never, + IfNotPresent, +} + +/// LivenessProbe to be used in the Container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBSidecarContainersLivenessProbe { /// Exec specifies the action to take. @@ -4673,7 +4934,7 @@ pub struct MariaDBSidecarContainersLivenessProbeTcpSocket { pub port: IntOrString, } -/// Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. +/// ReadinessProbe to be used in the Container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBSidecarContainersReadinessProbe { /// Exec specifies the action to take. @@ -4765,7 +5026,7 @@ pub struct MariaDBSidecarContainersReadinessProbeTcpSocket { pub port: IntOrString, } -/// ResourceRequirements describes the compute resource requirements. +/// Resouces describes the compute resource requirements. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBSidecarContainersResources { /// Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. @@ -4788,7 +5049,7 @@ pub struct MariaDBSidecarContainersResourcesClaims { pub name: String, } -/// SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. +/// SecurityContext holds security configuration that will be applied to a container. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBSidecarContainersSecurityContext { /// AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows. @@ -4925,7 +5186,7 @@ pub struct MariaDBTolerations { pub value: Option, } -/// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy. +/// PodDisruptionBudget defines the update strategy for the StatefulSet object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBUpdateStrategy { /// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. @@ -4947,11 +5208,13 @@ pub struct MariaDBUpdateStrategyRollingUpdate { pub partition: Option, } +/// VolumeClaimTemplate provides a template to define the Pod PVCs. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBVolumeClaimTemplate { /// accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessModes")] pub access_modes: Option>, + /// Annotations to be used in the PVC. #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, /// dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource. @@ -4960,6 +5223,7 @@ pub struct MariaDBVolumeClaimTemplate { /// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSourceRef")] pub data_source_ref: Option, + /// Labels to be used in the PVC. #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, /// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources @@ -6051,13 +6315,16 @@ pub struct MariaDBVolumesVsphereVolume { /// MariaDBStatus defines the observed state of MariaDB #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBStatus { + /// Conditions for the Mariadb object. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, + /// CurrentPrimary is the primary Pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "currentPrimary")] pub current_primary: Option, + /// CurrentPrimaryPodIndex is the primary Pod index. #[serde(default, skip_serializing_if = "Option::is_none", rename = "currentPrimaryPodIndex")] pub current_primary_pod_index: Option, - /// GaleraRecoveryStatus is the current state of the Galera recovery process. + /// GaleraRecovery is the Galera recovery current state. #[serde(default, skip_serializing_if = "Option::is_none", rename = "galeraRecovery")] pub galera_recovery: Option, } @@ -6094,7 +6361,7 @@ pub enum MariaDBStatusConditionsStatus { Unknown, } -/// GaleraRecoveryStatus is the current state of the Galera recovery process. +/// GaleraRecovery is the Galera recovery current state. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBStatusGaleraRecovery { /// Bootstrap indicates when and in which Pod the cluster bootstrap process has been performed. diff --git a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/restores.rs b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/restores.rs index edd56132b..c9f0a9d88 100644 --- a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/restores.rs +++ b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/restores.rs @@ -14,34 +14,39 @@ use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; #[kube(status = "RestoreStatus")] #[kube(schema = "disabled")] pub struct RestoreSpec { - /// Affinity is a group of affinity scheduling rules. + /// Affinity to be used in the Restore Pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub affinity: Option, + /// BackoffLimit defines the maximum number of attempts to successfully perform a Backup. #[serde(default, skip_serializing_if = "Option::is_none", rename = "backoffLimit")] pub backoff_limit: Option, - /// LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. + /// BackupRef is a reference to a Backup object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "backupRef")] pub backup_ref: Option, + /// FileName is the file within the source to be restored. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fileName")] pub file_name: Option, + /// MariaDBRef is a reference to a MariaDB object. #[serde(rename = "mariaDbRef")] pub maria_db_ref: RestoreMariaDbRef, + /// NodeSelector to be used in the Restore Pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] pub node_selector: Option>, - /// ResourceRequirements describes the compute resource requirements. + /// Resouces describes the compute resource requirements. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// RestartPolicy describes how the container should be restarted. Only one of the following restart policies may be specified. If none of the following policies is specified, the default one is RestartPolicyAlways. + /// RestartPolicy to be added to the Backup Job. #[serde(default, skip_serializing_if = "Option::is_none", rename = "restartPolicy")] - pub restart_policy: Option, + pub restart_policy: Option, + /// Tolerations to be used in the Restore Pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub tolerations: Option>, - /// Represents the source of a volume to mount. Only one of its members may be specified. + /// Volume is a Kubernetes Volume object that contains a backup. #[serde(default, skip_serializing_if = "Option::is_none")] pub volume: Option, } -/// Affinity is a group of affinity scheduling rules. +/// Affinity to be used in the Restore Pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RestoreAffinity { /// Describes node affinity scheduling rules for the pod. @@ -447,7 +452,7 @@ pub struct RestoreAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringEx pub values: Option>, } -/// LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. +/// BackupRef is a reference to a Backup object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RestoreBackupRef { /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? @@ -455,6 +460,7 @@ pub struct RestoreBackupRef { pub name: Option, } +/// MariaDBRef is a reference to a MariaDB object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RestoreMariaDbRef { /// API version of the referent. @@ -478,11 +484,12 @@ pub struct RestoreMariaDbRef { /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids #[serde(default, skip_serializing_if = "Option::is_none")] pub uid: Option, + /// WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. #[serde(default, skip_serializing_if = "Option::is_none", rename = "waitForIt")] pub wait_for_it: Option, } -/// ResourceRequirements describes the compute resource requirements. +/// Resouces describes the compute resource requirements. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RestoreResources { /// Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. @@ -505,6 +512,14 @@ pub struct RestoreResourcesClaims { pub name: String, } +/// RestoreSpec defines the desired state of restore +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum RestoreRestartPolicy { + Always, + OnFailure, + Never, +} + /// The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RestoreTolerations { @@ -525,7 +540,7 @@ pub struct RestoreTolerations { pub value: Option, } -/// Represents the source of a volume to mount. Only one of its members may be specified. +/// Volume is a Kubernetes Volume object that contains a backup. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RestoreVolume { /// awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore @@ -1500,6 +1515,7 @@ pub struct RestoreVolumeVsphereVolume { /// RestoreStatus defines the observed state of restore #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RestoreStatus { + /// Conditions for the Restore object. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, } diff --git a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/sqljobs.rs b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/sqljobs.rs index 91b35fcf7..3dc9d5a44 100644 --- a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/sqljobs.rs +++ b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/sqljobs.rs @@ -14,41 +14,50 @@ use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; #[kube(status = "SqlJobStatus")] #[kube(schema = "disabled")] pub struct SqlJobSpec { - /// Affinity is a group of affinity scheduling rules. + /// Affinity to be used in the SqlJob Pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub affinity: Option, + /// BackoffLimit defines the maximum number of attempts to successfully execute a SqlJob. #[serde(default, skip_serializing_if = "Option::is_none", rename = "backoffLimit")] pub backoff_limit: Option, + /// Username to be used when executing the SqlJob. #[serde(default, skip_serializing_if = "Option::is_none")] pub database: Option, + /// DependsOn defines dependencies with other SqlJob objectecs. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dependsOn")] pub depends_on: Option>, + /// MariaDBRef is a reference to a MariaDB object. #[serde(rename = "mariaDbRef")] pub maria_db_ref: SqlJobMariaDbRef, + /// NodeSelector to be used in the SqlJob Pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] pub node_selector: Option>, - /// SecretKeySelector selects a key of a Secret. + /// UserPasswordSecretKeyRef is a reference to the impersonated user's password to be used when executing the SqlJob. #[serde(rename = "passwordSecretKeyRef")] pub password_secret_key_ref: SqlJobPasswordSecretKeyRef, - /// ResourceRequirements describes the compute resource requirements. + /// Resouces describes the compute resource requirements. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// RestartPolicy describes how the container should be restarted. Only one of the following restart policies may be specified. If none of the following policies is specified, the default one is RestartPolicyAlways. + /// RestartPolicy to be added to the SqlJob Pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "restartPolicy")] - pub restart_policy: Option, + pub restart_policy: Option, + /// Schedule defines when the SqlJob will be executed. #[serde(default, skip_serializing_if = "Option::is_none")] pub schedule: Option, + /// Sql is the script to be executed by the SqlJob. #[serde(default, skip_serializing_if = "Option::is_none")] pub sql: Option, - /// Selects a key from a ConfigMap. + /// SqlConfigMapKeyRef is a reference to a ConfigMap containing the Sql script. It is defaulted to a ConfigMap with the contents of the Sql field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "sqlConfigMapKeyRef")] pub sql_config_map_key_ref: Option, + /// Tolerations to be used in the SqlJob Pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub tolerations: Option>, + /// Username to be impersonated when executing the SqlJob. pub username: String, } -/// Affinity is a group of affinity scheduling rules. +/// Affinity to be used in the SqlJob Pod. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SqlJobAffinity { /// Describes node affinity scheduling rules for the pod. @@ -462,6 +471,7 @@ pub struct SqlJobDependsOn { pub name: Option, } +/// MariaDBRef is a reference to a MariaDB object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SqlJobMariaDbRef { /// API version of the referent. @@ -485,11 +495,12 @@ pub struct SqlJobMariaDbRef { /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids #[serde(default, skip_serializing_if = "Option::is_none")] pub uid: Option, + /// WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. #[serde(default, skip_serializing_if = "Option::is_none", rename = "waitForIt")] pub wait_for_it: Option, } -/// SecretKeySelector selects a key of a Secret. +/// UserPasswordSecretKeyRef is a reference to the impersonated user's password to be used when executing the SqlJob. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SqlJobPasswordSecretKeyRef { /// The key of the secret to select from. Must be a valid secret key. @@ -502,7 +513,7 @@ pub struct SqlJobPasswordSecretKeyRef { pub optional: Option, } -/// ResourceRequirements describes the compute resource requirements. +/// Resouces describes the compute resource requirements. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SqlJobResources { /// Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. @@ -525,14 +536,25 @@ pub struct SqlJobResourcesClaims { pub name: String, } +/// SqlJobSpec defines the desired state of SqlJob +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum SqlJobRestartPolicy { + Always, + OnFailure, + Never, +} + +/// Schedule defines when the SqlJob will be executed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SqlJobSchedule { + /// Cron is a cron expression that defines the schedule. pub cron: String, + /// Suspend defines whether the schedule is active or not. #[serde(default, skip_serializing_if = "Option::is_none")] pub suspend: Option, } -/// Selects a key from a ConfigMap. +/// SqlConfigMapKeyRef is a reference to a ConfigMap containing the Sql script. It is defaulted to a ConfigMap with the contents of the Sql field. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SqlJobSqlConfigMapKeyRef { /// The key to select. @@ -568,6 +590,7 @@ pub struct SqlJobTolerations { /// SqlJobStatus defines the observed state of SqlJob #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SqlJobStatus { + /// Conditions for the SqlJob object. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, } diff --git a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/users.rs b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/users.rs index 5a9b74bf3..b99cf153a 100644 --- a/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/users.rs +++ b/kube-custom-resources-rs/src/mariadb_mmontes_io/v1alpha1/users.rs @@ -12,21 +12,27 @@ use serde::{Serialize, Deserialize}; #[kube(status = "UserStatus")] #[kube(schema = "disabled")] pub struct UserSpec { + /// Host related to the User. #[serde(default, skip_serializing_if = "Option::is_none")] pub host: Option, + /// MariaDBRef is a reference to a MariaDB object. #[serde(rename = "mariaDbRef")] pub maria_db_ref: UserMariaDbRef, + /// MaxUserConnections defines the maximum number of connections that the User can have. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUserConnections")] pub max_user_connections: Option, + /// Name overrides the default name provided by metadata.name. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// SecretKeySelector selects a key of a Secret. + /// PasswordSecretKeyRef is a reference to the password to be used by the User. #[serde(rename = "passwordSecretKeyRef")] pub password_secret_key_ref: UserPasswordSecretKeyRef, + /// RetryInterval is the interval used to perform health check retries. #[serde(default, skip_serializing_if = "Option::is_none", rename = "retryInterval")] pub retry_interval: Option, } +/// MariaDBRef is a reference to a MariaDB object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct UserMariaDbRef { /// API version of the referent. @@ -50,11 +56,12 @@ pub struct UserMariaDbRef { /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids #[serde(default, skip_serializing_if = "Option::is_none")] pub uid: Option, + /// WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. #[serde(default, skip_serializing_if = "Option::is_none", rename = "waitForIt")] pub wait_for_it: Option, } -/// SecretKeySelector selects a key of a Secret. +/// PasswordSecretKeyRef is a reference to the password to be used by the User. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct UserPasswordSecretKeyRef { /// The key of the secret to select from. Must be a valid secret key. @@ -70,6 +77,7 @@ pub struct UserPasswordSecretKeyRef { /// UserStatus defines the observed state of User #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct UserStatus { + /// Conditions for the User object. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, } diff --git a/kube-custom-resources-rs/src/monitoring_coreos_com/v1/alertmanagers.rs b/kube-custom-resources-rs/src/monitoring_coreos_com/v1/alertmanagers.rs index 966fcd044..40ce815e7 100644 --- a/kube-custom-resources-rs/src/monitoring_coreos_com/v1/alertmanagers.rs +++ b/kube-custom-resources-rs/src/monitoring_coreos_com/v1/alertmanagers.rs @@ -35,7 +35,7 @@ pub struct AlertmanagerSpec { /// AutomountServiceAccountToken indicates whether a service account token should be automatically mounted in the pod. If the service account has `automountServiceAccountToken: true`, set the field to `false` to opt out of automounting API credentials. #[serde(default, skip_serializing_if = "Option::is_none", rename = "automountServiceAccountToken")] pub automount_service_account_token: Option, - /// Base image that is used to deploy pods, without tag. Deprecated: use 'image' instead + /// Base image that is used to deploy pods, without tag. Deprecated: use 'image' instead. #[serde(default, skip_serializing_if = "Option::is_none", rename = "baseImage")] pub base_image: Option, /// ClusterAdvertiseAddress is the explicit address to advertise in cluster. Needs to be provided for non RFC1918 [1] (public) addresses. [1] RFC1918: https://tools.ietf.org/html/rfc1918 @@ -131,13 +131,13 @@ pub struct AlertmanagerSpec { /// ServiceAccountName is the name of the ServiceAccount to use to run the Prometheus Pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountName")] pub service_account_name: Option, - /// SHA of Alertmanager container image to be deployed. Defaults to the value of `version`. Similar to a tag, but the SHA explicitly deploys an immutable container image. Version and Tag are ignored if SHA is set. Deprecated: use 'image' instead. The image digest can be specified as part of the image URL. + /// SHA of Alertmanager container image to be deployed. Defaults to the value of `version`. Similar to a tag, but the SHA explicitly deploys an immutable container image. Version and Tag are ignored if SHA is set. Deprecated: use 'image' instead. The image digest can be specified as part of the image URL. #[serde(default, skip_serializing_if = "Option::is_none")] pub sha: Option, /// Storage is the definition of how storage will be used by the Alertmanager instances. #[serde(default, skip_serializing_if = "Option::is_none")] pub storage: Option, - /// Tag of Alertmanager container image to be deployed. Defaults to the value of `version`. Version is ignored if Tag is set. Deprecated: use 'image' instead. The image tag can be specified as part of the image URL. + /// Tag of Alertmanager container image to be deployed. Defaults to the value of `version`. Version is ignored if Tag is set. Deprecated: use 'image' instead. The image tag can be specified as part of the image URL. #[serde(default, skip_serializing_if = "Option::is_none")] pub tag: Option, /// If specified, the pod's tolerations. @@ -2832,7 +2832,7 @@ pub struct AlertmanagerSecurityContextWindowsOptions { /// Storage is the definition of how storage will be used by the Alertmanager instances. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct AlertmanagerStorage { - /// *Deprecated: subPath usage will be removed in a future release.* + /// Deprecated: subPath usage will be removed in a future release. #[serde(default, skip_serializing_if = "Option::is_none", rename = "disableMountSubPath")] pub disable_mount_sub_path: Option, /// EmptyDirVolumeSource to be used by the StatefulSet. If specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir @@ -3003,7 +3003,7 @@ pub struct AlertmanagerStorageVolumeClaimTemplate { /// Defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(default, skip_serializing_if = "Option::is_none")] pub spec: Option, - /// *Deprecated: this field is never set.* + /// Deprecated: this field is never set. #[serde(default, skip_serializing_if = "Option::is_none")] pub status: Option, } @@ -3124,7 +3124,7 @@ pub struct AlertmanagerStorageVolumeClaimTemplateSpecSelectorMatchExpressions { pub values: Option>, } -/// *Deprecated: this field is never set.* +/// Deprecated: this field is never set. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct AlertmanagerStorageVolumeClaimTemplateStatus { /// accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 diff --git a/kube-custom-resources-rs/src/monitoring_coreos_com/v1/prometheuses.rs b/kube-custom-resources-rs/src/monitoring_coreos_com/v1/prometheuses.rs index 931117891..eed429310 100644 --- a/kube-custom-resources-rs/src/monitoring_coreos_com/v1/prometheuses.rs +++ b/kube-custom-resources-rs/src/monitoring_coreos_com/v1/prometheuses.rs @@ -41,7 +41,7 @@ pub struct PrometheusSpec { #[serde(default, skip_serializing_if = "Option::is_none")] pub alerting: Option, /// AllowOverlappingBlocks enables vertical compaction and vertical query merge in Prometheus. - /// *Deprecated: this flag has no effect for Prometheus >= 2.39.0 where overlapping blocks are enabled by default.* + /// Deprecated: this flag has no effect for Prometheus >= 2.39.0 where overlapping blocks are enabled by default. #[serde(default, skip_serializing_if = "Option::is_none", rename = "allowOverlappingBlocks")] pub allow_overlapping_blocks: Option, /// APIServerConfig allows specifying a host and auth methods to access the Kuberntees API server. If null, Prometheus is assumed to run inside of the cluster: it will discover the API servers automatically and use the Pod's CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/. @@ -50,7 +50,7 @@ pub struct PrometheusSpec { /// When true, ServiceMonitor, PodMonitor and Probe object are forbidden to reference arbitrary files on the file system of the 'prometheus' container. When a ServiceMonitor's endpoint specifies a `bearerTokenFile` value (e.g. '/var/run/secrets/kubernetes.io/serviceaccount/token'), a malicious target can get access to the Prometheus service account's token in the Prometheus' scrape request. Setting `spec.arbitraryFSAccessThroughSM` to 'true' would prevent the attack. Users should instead provide the credentials using the `spec.bearerTokenSecret` field. #[serde(default, skip_serializing_if = "Option::is_none", rename = "arbitraryFSAccessThroughSMs")] pub arbitrary_fs_access_through_s_ms: Option, - /// *Deprecated: use 'spec.image' instead.* + /// Deprecated: use 'spec.image' instead. #[serde(default, skip_serializing_if = "Option::is_none", rename = "baseImage")] pub base_image: Option, /// BodySizeLimit defines per-scrape on response body size. Only valid in Prometheus versions 2.45.0 and newer. @@ -231,7 +231,7 @@ pub struct PrometheusSpec { /// Default: "prometheus" #[serde(default, skip_serializing_if = "Option::is_none", rename = "prometheusExternalLabelName")] pub prometheus_external_label_name: Option, - /// Defines the list of PrometheusRule objects to which the namespace label enforcement doesn't apply. This is only relevant when `spec.enforcedNamespaceLabel` is set to true. *Deprecated: use `spec.excludedFromEnforcement` instead.* + /// Defines the list of PrometheusRule objects to which the namespace label enforcement doesn't apply. This is only relevant when `spec.enforcedNamespaceLabel` is set to true. Deprecated: use `spec.excludedFromEnforcement` instead. #[serde(default, skip_serializing_if = "Option::is_none", rename = "prometheusRulesExcludedFromEnforce")] pub prometheus_rules_excluded_from_enforce: Option>, /// QuerySpec defines the configuration of the Promethus query service. @@ -314,7 +314,7 @@ pub struct PrometheusSpec { /// If `spec.serviceMonitorSelector`, `spec.podMonitorSelector`, `spec.probeSelector` and `spec.scrapeConfigSelector` are null, the Prometheus configuration is unmanaged. The Prometheus operator will ensure that the Prometheus configuration's Secret exists, but it is the responsibility of the user to provide the raw gzipped Prometheus configuration under the `prometheus.yaml.gz` key. This behavior is *deprecated* and will be removed in the next major version of the custom resource definition. It is recommended to use `spec.additionalScrapeConfigs` instead. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceMonitorSelector")] pub service_monitor_selector: Option, - /// *Deprecated: use 'spec.image' instead. The image's digest can be specified as part of the image name.* + /// Deprecated: use 'spec.image' instead. The image's digest can be specified as part of the image name. #[serde(default, skip_serializing_if = "Option::is_none")] pub sha: Option, /// EXPERIMENTAL: Number of shards to distribute targets onto. `spec.replicas` multiplied by `spec.shards` is the total number of Pods created. @@ -326,7 +326,7 @@ pub struct PrometheusSpec { /// Storage defines the storage used by Prometheus. #[serde(default, skip_serializing_if = "Option::is_none")] pub storage: Option, - /// *Deprecated: use 'spec.image' instead. The image's tag can be specified as part of the image name.* + /// Deprecated: use 'spec.image' instead. The image's tag can be specified as part of the image name. #[serde(default, skip_serializing_if = "Option::is_none")] pub tag: Option, /// TargetLimit defines a limit on the number of scraped targets that will be accepted. Only valid in Prometheus versions 2.45.0 and newer. @@ -853,7 +853,7 @@ pub struct PrometheusAlertingAlertmanagers { pub basic_auth: Option, /// File to read bearer token for Alertmanager. /// Cannot be set at the same time as `basicAuth`, `authorization`, or `sigv4`. - /// *Deprecated: this will be removed in a future release. Prefer using `authorization`.* + /// Deprecated: this will be removed in a future release. Prefer using `authorization`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "bearerTokenFile")] pub bearer_token_file: Option, /// Whether to enable HTTP2. @@ -1125,12 +1125,12 @@ pub struct PrometheusApiserverConfig { #[serde(default, skip_serializing_if = "Option::is_none", rename = "basicAuth")] pub basic_auth: Option, /// *Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* - /// *Deprecated: this will be removed in a future release.* + /// Deprecated: this will be removed in a future release. #[serde(default, skip_serializing_if = "Option::is_none", rename = "bearerToken")] pub bearer_token: Option, /// File to read bearer token for accessing apiserver. /// Cannot be set at the same time as `basicAuth`, `authorization`, or `bearerToken`. - /// *Deprecated: this will be removed in a future release. Prefer using `authorization`.* + /// Deprecated: this will be removed in a future release. Prefer using `authorization`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "bearerTokenFile")] pub bearer_token_file: Option, /// Kubernetes API address consisting of a hostname or IP address followed by an optional port number. @@ -3160,11 +3160,11 @@ pub struct PrometheusRemoteRead { #[serde(default, skip_serializing_if = "Option::is_none", rename = "basicAuth")] pub basic_auth: Option, /// *Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* - /// *Deprecated: this will be removed in a future release.* + /// Deprecated: this will be removed in a future release. #[serde(default, skip_serializing_if = "Option::is_none", rename = "bearerToken")] pub bearer_token: Option, /// File from which to read the bearer token for the URL. - /// *Deprecated: this will be removed in a future release. Prefer using `authorization`.* + /// Deprecated: this will be removed in a future release. Prefer using `authorization`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "bearerTokenFile")] pub bearer_token_file: Option, /// Whether to use the external labels as selectors for the remote read endpoint. @@ -3481,11 +3481,11 @@ pub struct PrometheusRemoteWrite { #[serde(default, skip_serializing_if = "Option::is_none", rename = "basicAuth")] pub basic_auth: Option, /// *Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* - /// *Deprecated: this will be removed in a future release.* + /// Deprecated: this will be removed in a future release. #[serde(default, skip_serializing_if = "Option::is_none", rename = "bearerToken")] pub bearer_token: Option, /// File from which to read bearer token for the URL. - /// *Deprecated: this will be removed in a future release. Prefer using `authorization`.* + /// Deprecated: this will be removed in a future release. Prefer using `authorization`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "bearerTokenFile")] pub bearer_token_file: Option, /// Custom HTTP headers to be sent along with each remote write request. Be aware that headers that are set by Prometheus itself can't be overwritten. @@ -4280,7 +4280,7 @@ pub struct PrometheusServiceMonitorSelectorMatchExpressions { /// Storage defines the storage used by Prometheus. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct PrometheusStorage { - /// *Deprecated: subPath usage will be removed in a future release.* + /// Deprecated: subPath usage will be removed in a future release. #[serde(default, skip_serializing_if = "Option::is_none", rename = "disableMountSubPath")] pub disable_mount_sub_path: Option, /// EmptyDirVolumeSource to be used by the StatefulSet. If specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir @@ -4451,7 +4451,7 @@ pub struct PrometheusStorageVolumeClaimTemplate { /// Defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(default, skip_serializing_if = "Option::is_none")] pub spec: Option, - /// *Deprecated: this field is never set.* + /// Deprecated: this field is never set. #[serde(default, skip_serializing_if = "Option::is_none")] pub status: Option, } @@ -4572,7 +4572,7 @@ pub struct PrometheusStorageVolumeClaimTemplateSpecSelectorMatchExpressions { pub values: Option>, } -/// *Deprecated: this field is never set.* +/// Deprecated: this field is never set. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct PrometheusStorageVolumeClaimTemplateStatus { /// accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 @@ -4629,7 +4629,7 @@ pub struct PrometheusThanos { /// AdditionalArgs allows setting additional arguments for the Thanos container. The arguments are passed as-is to the Thanos container which may cause issues if they are invalid or not supported the given Thanos version. In case of an argument conflict (e.g. an argument which is already set by the operator itself) or when providing an invalid argument, the reconciliation will fail and an error will be logged. #[serde(default, skip_serializing_if = "Option::is_none", rename = "additionalArgs")] pub additional_args: Option>, - /// *Deprecated: use 'image' instead.* + /// Deprecated: use 'image' instead. #[serde(default, skip_serializing_if = "Option::is_none", rename = "baseImage")] pub base_image: Option, /// BlockDuration controls the size of TSDB blocks produced by Prometheus. The default value is 2h to match the upstream Prometheus defaults. @@ -4659,7 +4659,7 @@ pub struct PrometheusThanos { /// If neither `spec.thanos.image` nor `spec.thanos.baseImage` are defined, the operator will use the latest upstream version of Thanos available at the time when the operator was released. #[serde(default, skip_serializing_if = "Option::is_none")] pub image: Option, - /// *Deprecated: use `grpcListenLocal` and `httpListenLocal` instead.* + /// Deprecated: use `grpcListenLocal` and `httpListenLocal` instead. #[serde(default, skip_serializing_if = "Option::is_none", rename = "listenLocal")] pub listen_local: Option, /// Log format for the Thanos sidecar. @@ -4687,10 +4687,10 @@ pub struct PrometheusThanos { /// Defines the resources requests and limits of the Thanos sidecar. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, - /// *Deprecated: use 'image' instead. The image digest can be specified as part of the image name.* + /// Deprecated: use 'image' instead. The image digest can be specified as part of the image name. #[serde(default, skip_serializing_if = "Option::is_none")] pub sha: Option, - /// *Deprecated: use 'image' instead. The image's tag can be specified as part of the image name.* + /// Deprecated: use 'image' instead. The image's tag can be specified as as part of the image name. #[serde(default, skip_serializing_if = "Option::is_none")] pub tag: Option, /// Defines the tracing configuration for the Thanos sidecar. diff --git a/kube-custom-resources-rs/src/monitoring_coreos_com/v1/thanosrulers.rs b/kube-custom-resources-rs/src/monitoring_coreos_com/v1/thanosrulers.rs index ce3e50031..0082cfa79 100644 --- a/kube-custom-resources-rs/src/monitoring_coreos_com/v1/thanosrulers.rs +++ b/kube-custom-resources-rs/src/monitoring_coreos_com/v1/thanosrulers.rs @@ -2591,7 +2591,7 @@ pub struct ThanosRulerSecurityContextWindowsOptions { /// Storage spec to specify how storage shall be used. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThanosRulerStorage { - /// *Deprecated: subPath usage will be removed in a future release.* + /// Deprecated: subPath usage will be removed in a future release. #[serde(default, skip_serializing_if = "Option::is_none", rename = "disableMountSubPath")] pub disable_mount_sub_path: Option, /// EmptyDirVolumeSource to be used by the StatefulSet. If specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir @@ -2762,7 +2762,7 @@ pub struct ThanosRulerStorageVolumeClaimTemplate { /// Defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(default, skip_serializing_if = "Option::is_none")] pub spec: Option, - /// *Deprecated: this field is never set.* + /// Deprecated: this field is never set. #[serde(default, skip_serializing_if = "Option::is_none")] pub status: Option, } @@ -2883,7 +2883,7 @@ pub struct ThanosRulerStorageVolumeClaimTemplateSpecSelectorMatchExpressions { pub values: Option>, } -/// *Deprecated: this field is never set.* +/// Deprecated: this field is never set. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ThanosRulerStorageVolumeClaimTemplateStatus { /// accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 diff --git a/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/alertmanagerconfigs.rs b/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/alertmanagerconfigs.rs index 34e98eac9..de3362579 100644 --- a/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/alertmanagerconfigs.rs +++ b/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/alertmanagerconfigs.rs @@ -49,7 +49,7 @@ pub struct AlertmanagerConfigInhibitRulesSourceMatch { pub match_type: Option, /// Label to match. pub name: String, - /// Whether to match on equality (false) or regular-expression (true). Deprecated as of AlertManager >= v0.22.0 where a user should use MatchType instead. + /// Whether to match on equality (false) or regular-expression (true). Deprecated: for AlertManager >= v0.22.0, `matchType` should be used instead. #[serde(default, skip_serializing_if = "Option::is_none")] pub regex: Option, /// Label value to match. @@ -78,7 +78,7 @@ pub struct AlertmanagerConfigInhibitRulesTargetMatch { pub match_type: Option, /// Label to match. pub name: String, - /// Whether to match on equality (false) or regular-expression (true). Deprecated as of AlertManager >= v0.22.0 where a user should use MatchType instead. + /// Whether to match on equality (false) or regular-expression (true). Deprecated: for AlertManager >= v0.22.0, `matchType` should be used instead. #[serde(default, skip_serializing_if = "Option::is_none")] pub regex: Option, /// Label value to match. @@ -4539,7 +4539,7 @@ pub struct AlertmanagerConfigRouteMatchers { pub match_type: Option, /// Label to match. pub name: String, - /// Whether to match on equality (false) or regular-expression (true). Deprecated as of AlertManager >= v0.22.0 where a user should use MatchType instead. + /// Whether to match on equality (false) or regular-expression (true). Deprecated: for AlertManager >= v0.22.0, `matchType` should be used instead. #[serde(default, skip_serializing_if = "Option::is_none")] pub regex: Option, /// Label value to match. diff --git a/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/prometheusagents.rs b/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/prometheusagents.rs index 9b9129a37..fa3558148 100644 --- a/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/prometheusagents.rs +++ b/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/prometheusagents.rs @@ -732,12 +732,12 @@ pub struct PrometheusAgentApiserverConfig { #[serde(default, skip_serializing_if = "Option::is_none", rename = "basicAuth")] pub basic_auth: Option, /// *Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* - /// *Deprecated: this will be removed in a future release.* + /// Deprecated: this will be removed in a future release. #[serde(default, skip_serializing_if = "Option::is_none", rename = "bearerToken")] pub bearer_token: Option, /// File to read bearer token for accessing apiserver. /// Cannot be set at the same time as `basicAuth`, `authorization`, or `bearerToken`. - /// *Deprecated: this will be removed in a future release. Prefer using `authorization`.* + /// Deprecated: this will be removed in a future release. Prefer using `authorization`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "bearerTokenFile")] pub bearer_token_file: Option, /// Kubernetes API address consisting of a hostname or IP address followed by an optional port number. @@ -2734,11 +2734,11 @@ pub struct PrometheusAgentRemoteWrite { #[serde(default, skip_serializing_if = "Option::is_none", rename = "basicAuth")] pub basic_auth: Option, /// *Warning: this field shouldn't be used because the token value appears in clear-text. Prefer using `authorization`.* - /// *Deprecated: this will be removed in a future release.* + /// Deprecated: this will be removed in a future release. #[serde(default, skip_serializing_if = "Option::is_none", rename = "bearerToken")] pub bearer_token: Option, /// File from which to read bearer token for the URL. - /// *Deprecated: this will be removed in a future release. Prefer using `authorization`.* + /// Deprecated: this will be removed in a future release. Prefer using `authorization`. #[serde(default, skip_serializing_if = "Option::is_none", rename = "bearerTokenFile")] pub bearer_token_file: Option, /// Custom HTTP headers to be sent along with each remote write request. Be aware that headers that are set by Prometheus itself can't be overwritten. @@ -3462,7 +3462,7 @@ pub struct PrometheusAgentServiceMonitorSelectorMatchExpressions { /// Storage defines the storage used by Prometheus. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct PrometheusAgentStorage { - /// *Deprecated: subPath usage will be removed in a future release.* + /// Deprecated: subPath usage will be removed in a future release. #[serde(default, skip_serializing_if = "Option::is_none", rename = "disableMountSubPath")] pub disable_mount_sub_path: Option, /// EmptyDirVolumeSource to be used by the StatefulSet. If specified, it takes precedence over `ephemeral` and `volumeClaimTemplate`. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir @@ -3633,7 +3633,7 @@ pub struct PrometheusAgentStorageVolumeClaimTemplate { /// Defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims #[serde(default, skip_serializing_if = "Option::is_none")] pub spec: Option, - /// *Deprecated: this field is never set.* + /// Deprecated: this field is never set. #[serde(default, skip_serializing_if = "Option::is_none")] pub status: Option, } @@ -3754,7 +3754,7 @@ pub struct PrometheusAgentStorageVolumeClaimTemplateSpecSelectorMatchExpressions pub values: Option>, } -/// *Deprecated: this field is never set.* +/// Deprecated: this field is never set. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct PrometheusAgentStorageVolumeClaimTemplateStatus { /// accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 diff --git a/kube-custom-resources-rs/src/networking_karmada_io/v1alpha1/multiclusterservices.rs b/kube-custom-resources-rs/src/networking_karmada_io/v1alpha1/multiclusterservices.rs index 06acc7af0..5a1b820a3 100644 --- a/kube-custom-resources-rs/src/networking_karmada_io/v1alpha1/multiclusterservices.rs +++ b/kube-custom-resources-rs/src/networking_karmada_io/v1alpha1/multiclusterservices.rs @@ -12,22 +12,36 @@ use serde::{Serialize, Deserialize}; #[kube(status = "MultiClusterServiceStatus")] #[kube(schema = "disabled")] pub struct MultiClusterServiceSpec { + /// ConsumerClusters specifies the clusters where the service will be exposed, for clients. If leave it empty, the service will be exposed to all clusters. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "consumerClusters")] + pub consumer_clusters: Option>, /// Ports is the list of ports that are exposed by this MultiClusterService. No specified port will be filtered out during the service exposure and discovery process. All ports in the referencing service will be exposed by default. #[serde(default, skip_serializing_if = "Option::is_none")] pub ports: Option>, - /// Range specifies the ranges where the referencing service should be exposed. Only valid and optional in case of Types contains CrossCluster. If not set and Types contains CrossCluster, all clusters will be selected, that means the referencing service will be exposed across all registered clusters. Deprecated: in favor of ServiceProvisionClusters/ServiceConsumptionClusters. + /// ProviderClusters specifies the clusters which will provide the service backend. If leave it empty, we will collect the backend endpoints from all clusters and sync them to the ConsumerClusters. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "providerClusters")] + pub provider_clusters: Option>, + /// Range specifies the ranges where the referencing service should be exposed. Only valid and optional in case of Types contains CrossCluster. If not set and Types contains CrossCluster, all clusters will be selected, that means the referencing service will be exposed across all registered clusters. Deprecated: in favor of ProviderClusters/ConsumerClusters. #[serde(default, skip_serializing_if = "Option::is_none")] pub range: Option, - /// ServiceConsumptionClusters specifies the clusters where the service will be exposed, for clients. If leave it empty, the service will be exposed to all clusters. + /// ServiceConsumptionClusters specifies the clusters where the service will be exposed, for clients. If leave it empty, the service will be exposed to all clusters. Deprecated: in favor of ProviderClusters/ConsumerClusters. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceConsumptionClusters")] pub service_consumption_clusters: Option>, - /// ServiceProvisionClusters specifies the clusters which will provision the service backend. If leave it empty, we will collect the backend endpoints from all clusters and sync them to the ServiceConsumptionClusters. + /// ServiceProvisionClusters specifies the clusters which will provision the service backend. If leave it empty, we will collect the backend endpoints from all clusters and sync them to the ServiceConsumptionClusters. Deprecated: in favor of ProviderClusters/ConsumerClusters. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceProvisionClusters")] pub service_provision_clusters: Option>, /// Types specifies how to expose the service referencing by this MultiClusterService. pub types: Vec, } +/// ClusterSelector specifies the cluster to be selected. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct MultiClusterServiceConsumerClusters { + /// Name is the name of the cluster to be selected. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + /// ExposurePort describes which port will be exposed. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MultiClusterServicePorts { @@ -38,7 +52,15 @@ pub struct MultiClusterServicePorts { pub port: i32, } -/// Range specifies the ranges where the referencing service should be exposed. Only valid and optional in case of Types contains CrossCluster. If not set and Types contains CrossCluster, all clusters will be selected, that means the referencing service will be exposed across all registered clusters. Deprecated: in favor of ServiceProvisionClusters/ServiceConsumptionClusters. +/// ClusterSelector specifies the cluster to be selected. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct MultiClusterServiceProviderClusters { + /// Name is the name of the cluster to be selected. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +/// Range specifies the ranges where the referencing service should be exposed. Only valid and optional in case of Types contains CrossCluster. If not set and Types contains CrossCluster, all clusters will be selected, that means the referencing service will be exposed across all registered clusters. Deprecated: in favor of ProviderClusters/ConsumerClusters. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MultiClusterServiceRange { /// ClusterNames is the list of clusters to be selected. diff --git a/kube-custom-resources-rs/src/notification_toolkit_fluxcd_io/v1beta3/providers.rs b/kube-custom-resources-rs/src/notification_toolkit_fluxcd_io/v1beta3/providers.rs index f537da6ff..370debe61 100644 --- a/kube-custom-resources-rs/src/notification_toolkit_fluxcd_io/v1beta3/providers.rs +++ b/kube-custom-resources-rs/src/notification_toolkit_fluxcd_io/v1beta3/providers.rs @@ -21,6 +21,9 @@ pub struct ProviderSpec { /// Channel specifies the destination channel where events should be posted. #[serde(default, skip_serializing_if = "Option::is_none")] pub channel: Option, + /// Interval at which to reconcile the Provider with its Secret references. Deprecated and not used in v1beta3. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub interval: Option, /// Proxy the HTTP/S address of the proxy server. #[serde(default, skip_serializing_if = "Option::is_none")] pub proxy: Option, diff --git a/kube-custom-resources-rs/src/ray_io/v1/rayclusters.rs b/kube-custom-resources-rs/src/ray_io/v1/rayclusters.rs index 94084f64c..e4f0c3783 100644 --- a/kube-custom-resources-rs/src/ray_io/v1/rayclusters.rs +++ b/kube-custom-resources-rs/src/ray_io/v1/rayclusters.rs @@ -23,6 +23,8 @@ pub struct RayClusterSpec { pub head_service_annotations: Option>, #[serde(default, skip_serializing_if = "Option::is_none", rename = "rayVersion")] pub ray_version: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub suspend: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "workerGroupSpecs")] pub worker_group_specs: Option>, } diff --git a/kube-custom-resources-rs/src/ray_io/v1/rayjobs.rs b/kube-custom-resources-rs/src/ray_io/v1/rayjobs.rs index 366d67b26..91816cb20 100644 --- a/kube-custom-resources-rs/src/ray_io/v1/rayjobs.rs +++ b/kube-custom-resources-rs/src/ray_io/v1/rayjobs.rs @@ -54,6 +54,8 @@ pub struct RayJobRayClusterSpec { pub head_service_annotations: Option>, #[serde(default, skip_serializing_if = "Option::is_none", rename = "rayVersion")] pub ray_version: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub suspend: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "workerGroupSpecs")] pub worker_group_specs: Option>, } diff --git a/kube-custom-resources-rs/src/ray_io/v1/rayservices.rs b/kube-custom-resources-rs/src/ray_io/v1/rayservices.rs index e73c5379e..9d03e699e 100644 --- a/kube-custom-resources-rs/src/ray_io/v1/rayservices.rs +++ b/kube-custom-resources-rs/src/ray_io/v1/rayservices.rs @@ -39,6 +39,8 @@ pub struct RayServiceRayClusterConfig { pub head_service_annotations: Option>, #[serde(default, skip_serializing_if = "Option::is_none", rename = "rayVersion")] pub ray_version: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub suspend: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "workerGroupSpecs")] pub worker_group_specs: Option>, } diff --git a/kube-custom-resources-rs/src/secrets_hashicorp_com/v1beta1/vaultpkisecrets.rs b/kube-custom-resources-rs/src/secrets_hashicorp_com/v1beta1/vaultpkisecrets.rs index b1796e9de..4cdb629cd 100644 --- a/kube-custom-resources-rs/src/secrets_hashicorp_com/v1beta1/vaultpkisecrets.rs +++ b/kube-custom-resources-rs/src/secrets_hashicorp_com/v1beta1/vaultpkisecrets.rs @@ -27,7 +27,7 @@ pub struct VaultPKISecretSpec { /// ExcludeCNFromSans from DNS or Email Subject Alternate Names. Default: false #[serde(default, skip_serializing_if = "Option::is_none", rename = "excludeCNFromSans")] pub exclude_cn_from_sans: Option, - /// ExpiryOffset to use for computing when the certificate should be renewed. The rotation time will be difference between the expiration and the offset. Should be in duration notation e.g. 30s, 120s, etc. Set to empty string "" to prevent certificate rotation. + /// ExpiryOffset to use for computing when the certificate should be renewed. The rotation time will be difference between the expiration and the offset. Should be in duration notation e.g. 30s, 120s, etc. #[serde(default, skip_serializing_if = "Option::is_none", rename = "expiryOffset")] pub expiry_offset: Option, /// Format for the certificate. Choices: "pem", "der", "pem_bundle". If "pem_bundle", any private key and issuing cert will be appended to the certificate pem. If "der", the value will be base64 encoded. Default: pem @@ -114,6 +114,17 @@ pub struct VaultPKISecretStatus { pub error: String, #[serde(default, skip_serializing_if = "Option::is_none")] pub expiration: Option, + /// LastGeneration is the Generation of the last reconciled resource. + #[serde(rename = "lastGeneration")] + pub last_generation: i64, + /// LastLastRotation of the certificate. + #[serde(rename = "lastRotation")] + pub last_rotation: i64, + /// SecretMAC used when deciding whether new Vault secret data should be synced. + /// The controller will compare the "new" Vault secret data to this value using HMAC, if they are different, then the data will be synced to the Destination. + /// The SecretMac is also used to detect drift in the Destination Secret's Data. If drift is detected the data will be synced to the Destination. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretMAC")] + pub secret_mac: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "serialNumber")] pub serial_number: Option, pub valid: bool, diff --git a/kube-custom-resources-rs/src/security_profiles_operator_x_k8s_io/v1alpha1/securityprofilesoperatordaemons.rs b/kube-custom-resources-rs/src/security_profiles_operator_x_k8s_io/v1alpha1/securityprofilesoperatordaemons.rs index bbe2b95b5..ff688db0e 100644 --- a/kube-custom-resources-rs/src/security_profiles_operator_x_k8s_io/v1alpha1/securityprofilesoperatordaemons.rs +++ b/kube-custom-resources-rs/src/security_profiles_operator_x_k8s_io/v1alpha1/securityprofilesoperatordaemons.rs @@ -212,9 +212,15 @@ pub struct SecurityProfilesOperatorDaemonAffinityPodAffinityPreferredDuringSched /// Required. A pod affinity term, associated with the corresponding weight. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SecurityProfilesOperatorDaemonAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { - /// A label query over a set of resources, in this case pods. + /// A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] pub label_selector: Option, + /// MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + /// MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] pub namespace_selector: Option, @@ -226,7 +232,7 @@ pub struct SecurityProfilesOperatorDaemonAffinityPodAffinityPreferredDuringSched pub topology_key: String, } -/// A label query over a set of resources, in this case pods. +/// A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SecurityProfilesOperatorDaemonAffinityPodAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -275,9 +281,15 @@ pub struct SecurityProfilesOperatorDaemonAffinityPodAffinityPreferredDuringSched /// Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SecurityProfilesOperatorDaemonAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecution { - /// A label query over a set of resources, in this case pods. + /// A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] pub label_selector: Option, + /// MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + /// MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] pub namespace_selector: Option, @@ -289,7 +301,7 @@ pub struct SecurityProfilesOperatorDaemonAffinityPodAffinityRequiredDuringSchedu pub topology_key: String, } -/// A label query over a set of resources, in this case pods. +/// A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SecurityProfilesOperatorDaemonAffinityPodAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -359,9 +371,15 @@ pub struct SecurityProfilesOperatorDaemonAffinityPodAntiAffinityPreferredDuringS /// Required. A pod affinity term, associated with the corresponding weight. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SecurityProfilesOperatorDaemonAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTerm { - /// A label query over a set of resources, in this case pods. + /// A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] pub label_selector: Option, + /// MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + /// MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] pub namespace_selector: Option, @@ -373,7 +391,7 @@ pub struct SecurityProfilesOperatorDaemonAffinityPodAntiAffinityPreferredDuringS pub topology_key: String, } -/// A label query over a set of resources, in this case pods. +/// A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SecurityProfilesOperatorDaemonAffinityPodAntiAffinityPreferredDuringSchedulingIgnoredDuringExecutionPodAffinityTermLabelSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. @@ -422,9 +440,15 @@ pub struct SecurityProfilesOperatorDaemonAffinityPodAntiAffinityPreferredDuringS /// Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SecurityProfilesOperatorDaemonAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecution { - /// A label query over a set of resources, in this case pods. + /// A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] pub label_selector: Option, + /// MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + /// MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mismatchLabelKeys")] + pub mismatch_label_keys: Option>, /// A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] pub namespace_selector: Option, @@ -436,7 +460,7 @@ pub struct SecurityProfilesOperatorDaemonAffinityPodAntiAffinityRequiredDuringSc pub topology_key: String, } -/// A label query over a set of resources, in this case pods. +/// A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SecurityProfilesOperatorDaemonAffinityPodAntiAffinityRequiredDuringSchedulingIgnoredDuringExecutionLabelSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. diff --git a/kube-custom-resources-rs/src/tests_testkube_io/v1/testexecutions.rs b/kube-custom-resources-rs/src/tests_testkube_io/v1/testexecutions.rs index fb48e9258..032718062 100644 --- a/kube-custom-resources-rs/src/tests_testkube_io/v1/testexecutions.rs +++ b/kube-custom-resources-rs/src/tests_testkube_io/v1/testexecutions.rs @@ -137,9 +137,15 @@ pub struct TestExecutionExecutionRequestArtifactRequest { /// artifact directories for scraping #[serde(default, skip_serializing_if = "Option::is_none")] pub dirs: Option>, + /// regexp to filter scraped artifacts, single or comma separated + #[serde(default, skip_serializing_if = "Option::is_none")] + pub masks: Option>, /// don't use a separate folder for execution artifacts #[serde(default, skip_serializing_if = "Option::is_none", rename = "omitFolderPerExecution")] pub omit_folder_per_execution: Option, + /// whether to share volume between pods + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sharedBetweenPods")] + pub shared_between_pods: Option, /// artifact bucket storage #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageBucket")] pub storage_bucket: Option, @@ -502,9 +508,15 @@ pub struct TestExecutionStatusLatestExecutionArtifactRequest { /// artifact directories for scraping #[serde(default, skip_serializing_if = "Option::is_none")] pub dirs: Option>, + /// regexp to filter scraped artifacts, single or comma separated + #[serde(default, skip_serializing_if = "Option::is_none")] + pub masks: Option>, /// don't use a separate folder for execution artifacts #[serde(default, skip_serializing_if = "Option::is_none", rename = "omitFolderPerExecution")] pub omit_folder_per_execution: Option, + /// whether to share volume between pods + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sharedBetweenPods")] + pub shared_between_pods: Option, /// artifact bucket storage #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageBucket")] pub storage_bucket: Option, diff --git a/kube-custom-resources-rs/src/tests_testkube_io/v1/testsuiteexecutions.rs b/kube-custom-resources-rs/src/tests_testkube_io/v1/testsuiteexecutions.rs index 5565dd051..a5ecdd502 100644 --- a/kube-custom-resources-rs/src/tests_testkube_io/v1/testsuiteexecutions.rs +++ b/kube-custom-resources-rs/src/tests_testkube_io/v1/testsuiteexecutions.rs @@ -282,8 +282,17 @@ pub struct TestSuiteExecutionStatusLatestExecution { /// execution result returned from executor #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct TestSuiteExecutionStatusLatestExecutionExecuteStepResults { + /// step duration + #[serde(default, skip_serializing_if = "Option::is_none")] + pub duration: Option, + /// step end time + #[serde(default, skip_serializing_if = "Option::is_none", rename = "endTime")] + pub end_time: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub execute: Option>, + /// step start time + #[serde(default, skip_serializing_if = "Option::is_none", rename = "startTime")] + pub start_time: Option, /// set of steps run in parallel #[serde(default, skip_serializing_if = "Option::is_none")] pub step: Option, @@ -419,9 +428,15 @@ pub struct TestSuiteExecutionStatusLatestExecutionExecuteStepResultsExecuteExecu /// artifact directories for scraping #[serde(default, skip_serializing_if = "Option::is_none")] pub dirs: Option>, + /// regexp to filter scraped artifacts, single or comma separated + #[serde(default, skip_serializing_if = "Option::is_none")] + pub masks: Option>, /// don't use a separate folder for execution artifacts #[serde(default, skip_serializing_if = "Option::is_none", rename = "omitFolderPerExecution")] pub omit_folder_per_execution: Option, + /// whether to share volume between pods + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sharedBetweenPods")] + pub shared_between_pods: Option, /// artifact bucket storage #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageBucket")] pub storage_bucket: Option, @@ -971,9 +986,15 @@ pub struct TestSuiteExecutionStatusLatestExecutionStepResultsExecutionArtifactRe /// artifact directories for scraping #[serde(default, skip_serializing_if = "Option::is_none")] pub dirs: Option>, + /// regexp to filter scraped artifacts, single or comma separated + #[serde(default, skip_serializing_if = "Option::is_none")] + pub masks: Option>, /// don't use a separate folder for execution artifacts #[serde(default, skip_serializing_if = "Option::is_none", rename = "omitFolderPerExecution")] pub omit_folder_per_execution: Option, + /// whether to share volume between pods + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sharedBetweenPods")] + pub shared_between_pods: Option, /// artifact bucket storage #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageBucket")] pub storage_bucket: Option, diff --git a/kube-custom-resources-rs/src/tests_testkube_io/v3/tests.rs b/kube-custom-resources-rs/src/tests_testkube_io/v3/tests.rs index f70856e0c..3fcd1be66 100644 --- a/kube-custom-resources-rs/src/tests_testkube_io/v3/tests.rs +++ b/kube-custom-resources-rs/src/tests_testkube_io/v3/tests.rs @@ -263,9 +263,15 @@ pub struct TestExecutionRequestArtifactRequest { /// artifact directories for scraping #[serde(default, skip_serializing_if = "Option::is_none")] pub dirs: Option>, + /// regexp to filter scraped artifacts, single or comma separated + #[serde(default, skip_serializing_if = "Option::is_none")] + pub masks: Option>, /// don't use a separate folder for execution artifacts #[serde(default, skip_serializing_if = "Option::is_none", rename = "omitFolderPerExecution")] pub omit_folder_per_execution: Option, + /// whether to share volume between pods + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sharedBetweenPods")] + pub shared_between_pods: Option, /// artifact bucket storage #[serde(default, skip_serializing_if = "Option::is_none", rename = "storageBucket")] pub storage_bucket: Option, diff --git a/kube-custom-resources-rs/src/tests_testkube_io/v3/testsuites.rs b/kube-custom-resources-rs/src/tests_testkube_io/v3/testsuites.rs index 4342a16bf..6688e5ea2 100644 --- a/kube-custom-resources-rs/src/tests_testkube_io/v3/testsuites.rs +++ b/kube-custom-resources-rs/src/tests_testkube_io/v3/testsuites.rs @@ -55,6 +55,9 @@ pub struct TestSuiteAfterDownloadArtifacts { /// previous step numbers starting from 1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "previousStepNumbers")] pub previous_step_numbers: Option>, + /// previous test names + #[serde(default, skip_serializing_if = "Option::is_none", rename = "previousTestNames")] + pub previous_test_names: Option>, } /// TestSuiteStepSpec for particular type will have config for possible step types @@ -88,6 +91,9 @@ pub struct TestSuiteBeforeDownloadArtifacts { /// previous step numbers starting from 1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "previousStepNumbers")] pub previous_step_numbers: Option>, + /// previous test names + #[serde(default, skip_serializing_if = "Option::is_none", rename = "previousTestNames")] + pub previous_test_names: Option>, } /// TestSuiteStepSpec for particular type will have config for possible step types @@ -262,6 +268,9 @@ pub struct TestSuiteStepsDownloadArtifacts { /// previous step numbers starting from 1 #[serde(default, skip_serializing_if = "Option::is_none", rename = "previousStepNumbers")] pub previous_step_numbers: Option>, + /// previous test names + #[serde(default, skip_serializing_if = "Option::is_none", rename = "previousTestNames")] + pub previous_test_names: Option>, } /// TestSuiteStepSpec for particular type will have config for possible step types