From be24d6e2ffc8ac3207931580b396287b4117973b Mon Sep 17 00:00:00 2001 From: sebhoss Date: Fri, 19 Jan 2024 09:58:24 +0000 Subject: [PATCH] Update upstream specifications to their latest version --- .../apisix.apache.org/v2/apisixroutes.yaml | 4 +- .../camel-k/camel.apache.org/v1/builds.yaml | 11 +- .../camel.apache.org/v1/integrationkits.yaml | 11 +- .../v1/integrationplatforms.yaml | 96 +- .../camel.apache.org/v1/integrations.yaml | 48 +- .../v1alpha1/kameletbindings.yaml | 48 +- .../apps.kubeblocks.io/v1alpha1/clusters.yaml | 8 +- .../v1alpha1/backups.yaml | 16 +- .../acme.cert-manager.io/v1/challenges.yaml | 10 +- .../cert-manager.io/v1/clusterissuers.yaml | 10 +- .../cert-manager.io/v1/issuers.yaml | 10 +- .../v2/ciliumclusterwidenetworkpolicies.yaml | 8 +- .../cilium.io/v2/ciliumnetworkpolicies.yaml | 8 +- .../postgresql.cnpg.io/v1/clusters.yaml | 5 + .../v1beta1/clustersecretstores.yaml | 30 + .../v1beta1/secretstores.yaml | 30 + .../canaries.flanksource.com/v1/canaries.yaml | 174 ++++ .../v1/teleportloginrules.yaml | 29 +- .../v1/teleportoktaimportrules.yaml | 29 +- .../v2/teleportprovisiontokens.yaml | 31 +- .../v2/teleportsamlconnectors.yaml | 29 +- .../v2/teleportusers.yaml | 29 +- .../v3/teleportgithubconnectors.yaml | 29 +- .../v3/teleportoidcconnectors.yaml | 29 +- .../v5/teleportroles.yaml | 29 +- .../v6/teleportroles.yaml | 29 +- .../clustertriggerauthentications.yaml | 188 ++++ .../v1alpha1/triggerauthentications.yaml | 188 ++++ .../kiali.io/v1alpha1/kialis.yaml | 46 +- .../v1alpha1/edgeapplications.yaml | 197 ++++ .../v1alpha1/nodeupgradejobs.yaml | 83 +- .../v1alpha1/bootstrapproviders.yaml | 2 + .../v1alpha1/controlplaneproviders.yaml | 2 + .../v1alpha1/coreproviders.yaml | 2 + .../v1alpha1/infrastructureproviders.yaml | 2 + .../v1alpha2/addonproviders.yaml | 2 + .../v1alpha2/bootstrapproviders.yaml | 2 + .../v1alpha2/controlplaneproviders.yaml | 2 + .../v1alpha2/coreproviders.yaml | 2 + .../v1alpha2/infrastructureproviders.yaml | 2 + .../v1alpha4/clusterresourcesetbindings.yaml | 25 +- .../v1alpha4/clusterresourcesets.yaml | 70 +- .../v1beta1/clusterresourcesetbindings.yaml | 23 +- .../v1beta1/clusterresourcesets.yaml | 64 +- .../v1alpha4/clusterclasses.yaml | 276 ++++- .../cluster.x-k8s.io/v1alpha4/clusters.yaml | 211 +++- .../v1alpha4/machinedeployments.yaml | 284 ++++- .../v1alpha4/machinehealthchecks.yaml | 134 ++- .../v1alpha4/machinepools.yaml | 250 ++++- .../cluster.x-k8s.io/v1alpha4/machines.yaml | 246 ++++- .../v1alpha4/machinesets.yaml | 238 ++++- .../v1beta1/clusterclasses.yaml | 986 ++++++++++++++---- .../cluster.x-k8s.io/v1beta1/clusters.yaml | 579 ++++++++-- .../v1beta1/machinedeployments.yaml | 309 +++++- .../v1beta1/machinehealthchecks.yaml | 128 ++- .../v1beta1/machinepools.yaml | 254 ++++- .../cluster.x-k8s.io/v1beta1/machines.yaml | 247 ++++- .../cluster.x-k8s.io/v1beta1/machinesets.yaml | 256 ++++- .../v1alpha1/ipaddressclaims.yaml | 49 +- .../v1alpha1/ipaddresses.yaml | 25 +- .../v1beta1/ipaddressclaims.yaml | 49 +- .../v1beta1/ipaddresses.yaml | 25 +- .../v1alpha1/extensionconfigs.yaml | 113 +- .../kuma.io/v1alpha1/circuitbreakers.yaml | 19 +- .../kuma.io/v1alpha1/containerpatches.yaml | 23 +- .../kuma.io/v1alpha1/dataplaneinsights.yaml | 19 +- .../kuma/kuma.io/v1alpha1/dataplanes.yaml | 19 +- .../kuma.io/v1alpha1/externalservices.yaml | 19 +- .../kuma.io/v1alpha1/faultinjections.yaml | 19 +- .../kuma/kuma.io/v1alpha1/healthchecks.yaml | 19 +- .../kuma/kuma.io/v1alpha1/meshaccesslogs.yaml | 129 ++- .../kuma.io/v1alpha1/meshcircuitbreakers.yaml | 447 ++++++-- .../kumahq/kuma/kuma.io/v1alpha1/meshes.yaml | 19 +- .../kuma.io/v1alpha1/meshfaultinjections.yaml | 143 ++- .../kuma.io/v1alpha1/meshgatewayconfigs.yaml | 75 +- .../v1alpha1/meshgatewayinstances.yaml | 146 ++- .../kuma.io/v1alpha1/meshgatewayroutes.yaml | 19 +- .../kuma/kuma.io/v1alpha1/meshgateways.yaml | 19 +- .../kuma.io/v1alpha1/meshhealthchecks.yaml | 145 ++- .../kuma/kuma.io/v1alpha1/meshhttproutes.yaml | 172 ++- .../kuma/kuma.io/v1alpha1/meshinsights.yaml | 19 +- .../v1alpha1/meshloadbalancingstrategies.yaml | 190 +++- .../kuma.io/v1alpha1/meshproxypatches.yaml | 161 ++- .../kuma/kuma.io/v1alpha1/meshratelimits.yaml | 133 ++- .../kuma/kuma.io/v1alpha1/meshretries.yaml | 184 +++- .../kuma/kuma.io/v1alpha1/meshtcproutes.yaml | 93 +- .../kuma/kuma.io/v1alpha1/meshtimeouts.yaml | 163 ++- .../kuma/kuma.io/v1alpha1/meshtraces.yaml | 108 +- .../v1alpha1/meshtrafficpermissions.yaml | 66 +- .../kuma/kuma.io/v1alpha1/proxytemplates.yaml | 19 +- .../kuma/kuma.io/v1alpha1/ratelimits.yaml | 19 +- .../kumahq/kuma/kuma.io/v1alpha1/retries.yaml | 19 +- .../kuma.io/v1alpha1/serviceinsights.yaml | 19 +- .../kuma/kuma.io/v1alpha1/timeouts.yaml | 19 +- .../kuma/kuma.io/v1alpha1/trafficlogs.yaml | 19 +- .../kuma.io/v1alpha1/trafficpermissions.yaml | 19 +- .../kuma/kuma.io/v1alpha1/trafficroutes.yaml | 19 +- .../kuma/kuma.io/v1alpha1/traffictraces.yaml | 19 +- .../kuma.io/v1alpha1/virtualoutbounds.yaml | 19 +- .../kuma/kuma.io/v1alpha1/zoneegresses.yaml | 27 +- .../kuma.io/v1alpha1/zoneegressinsights.yaml | 19 +- .../kuma/kuma.io/v1alpha1/zoneingresses.yaml | 27 +- .../kuma.io/v1alpha1/zoneingressinsights.yaml | 19 +- .../kuma/kuma.io/v1alpha1/zoneinsights.yaml | 19 +- .../kumahq/kuma/kuma.io/v1alpha1/zones.yaml | 19 +- .../longhorn.io/v1beta2/engineimages.yaml | 4 + .../mariadb.mmontes.io/v1alpha1/backups.yaml | 178 ++++ .../mariadb.mmontes.io/v1alpha1/mariadbs.yaml | 74 ++ .../mariadb.mmontes.io/v1alpha1/restores.yaml | 183 ++++ .../mariadb.mmontes.io/v1alpha1/sqljobs.yaml | 175 ++++ .../v1beta1/mattermosts.yaml | 799 +++++++++++++- .../v1beta1/dosprotectedresources.yaml | 15 +- .../v1/dnsendpoints.yaml | 15 +- .../v1/globalconfigurations.yaml | 15 +- .../k8s.nginx.org/v1/policies.yaml | 24 +- .../k8s.nginx.org/v1/transportservers.yaml | 15 +- .../k8s.nginx.org/v1/virtualserverroutes.yaml | 15 +- .../k8s.nginx.org/v1/virtualservers.yaml | 19 +- .../v1alpha1/globalconfigurations.yaml | 15 +- .../k8s.nginx.org/v1alpha1/policies.yaml | 20 +- .../v1alpha1/transportservers.yaml | 15 +- .../v1alpha1/nginxgateways.yaml | 44 +- .../v1alpha1/opentelemetrycollectors.yaml | 27 + .../v1alpha1/scrapeconfigs.yaml | 3 + .../v1beta2/pulps.yaml | 25 + .../kuberay/ray.io/v1/rayclusters.yaml | 4 + .../kuberay/ray.io/v1/rayjobs.yaml | 4 + .../kuberay/ray.io/v1/rayservices.yaml | 20 +- .../kuberay/ray.io/v1alpha1/rayservices.yaml | 16 - .../gloo/gloo.solo.io/v1/settings.yaml | 4 + .../src/acme_cert_manager_io/v1/challenges.rs | 14 +- .../v1alpha4/clusterresourcesets.rs | 44 +- .../v1beta1/clusterresourcesets.rs | 44 +- .../src/apisix_apache_org/v2/apisixroutes.rs | 2 + .../apps_kubeblocks_io/v1alpha1/clusters.rs | 5 +- .../src/camel_apache_org/v1/builds.rs | 14 +- .../canaries_flanksource_com/v1/canaries.rs | 184 ++++ .../src/cert_manager_io/v1/clusterissuers.rs | 14 +- .../src/cert_manager_io/v1/issuers.rs | 14 +- .../v2/ciliumclusterwidenetworkpolicies.rs | 24 +- .../src/cilium_io/v2/ciliumnetworkpolicies.rs | 24 +- .../v1alpha4/clusterclasses.rs | 262 +++-- .../src/cluster_x_k8s_io/v1alpha4/clusters.rs | 175 +++- .../v1alpha4/machinedeployments.rs | 247 +++-- .../v1alpha4/machinehealthchecks.rs | 101 +- .../cluster_x_k8s_io/v1alpha4/machinepools.rs | 204 +++- .../src/cluster_x_k8s_io/v1alpha4/machines.rs | 204 +++- .../cluster_x_k8s_io/v1alpha4/machinesets.rs | 205 +++- .../v1beta1/clusterclasses.rs | 922 ++++++++++++---- .../src/cluster_x_k8s_io/v1beta1/clusters.rs | 529 +++++++--- .../v1beta1/machinedeployments.rs | 276 +++-- .../v1beta1/machinehealthchecks.rs | 101 +- .../cluster_x_k8s_io/v1beta1/machinepools.rs | 212 +++- .../src/cluster_x_k8s_io/v1beta1/machines.rs | 209 +++- .../cluster_x_k8s_io/v1beta1/machinesets.rs | 228 +++- .../v1alpha1/backups.rs | 14 +- .../v1beta1/clustersecretstores.rs | 42 + .../v1beta1/secretstores.rs | 42 + .../v1alpha1/nginxgateways.rs | 62 +- .../v1beta1/mattermosts.rs | 770 +++++++++++++- .../v1alpha1/ipaddressclaims.rs | 27 +- .../v1alpha1/ipaddresses.rs | 8 +- .../v1beta1/ipaddressclaims.rs | 27 +- .../v1beta1/ipaddresses.rs | 8 +- .../src/k8s_nginx_org/v1/policies.rs | 10 +- .../src/k8s_nginx_org/v1/virtualservers.rs | 3 +- .../src/k8s_nginx_org/v1alpha1/policies.rs | 4 +- .../v1alpha1/clustertriggerauthentications.rs | 216 ++++ .../v1alpha1/triggerauthentications.rs | 216 ++++ .../src/kuma_io/v1alpha1/containerpatches.rs | 6 +- .../src/kuma_io/v1alpha1/meshaccesslogs.rs | 124 ++- .../kuma_io/v1alpha1/meshcircuitbreakers.rs | 521 +++++++-- .../kuma_io/v1alpha1/meshfaultinjections.rs | 124 ++- .../kuma_io/v1alpha1/meshgatewayconfigs.rs | 51 +- .../kuma_io/v1alpha1/meshgatewayinstances.rs | 150 ++- .../src/kuma_io/v1alpha1/meshhealthchecks.rs | 122 ++- .../src/kuma_io/v1alpha1/meshhttproutes.rs | 141 ++- .../v1alpha1/meshloadbalancingstrategies.rs | 181 +++- .../src/kuma_io/v1alpha1/meshproxypatches.rs | 156 ++- .../src/kuma_io/v1alpha1/meshratelimits.rs | 114 +- .../src/kuma_io/v1alpha1/meshretries.rs | 157 ++- .../src/kuma_io/v1alpha1/meshtcproutes.rs | 63 +- .../src/kuma_io/v1alpha1/meshtimeouts.rs | 128 ++- .../src/kuma_io/v1alpha1/meshtraces.rs | 83 +- .../v1alpha1/meshtrafficpermissions.rs | 50 +- .../mariadb_mmontes_io/v1alpha1/backups.rs | 196 ++++ .../mariadb_mmontes_io/v1alpha1/mariadbs.rs | 66 ++ .../mariadb_mmontes_io/v1alpha1/restores.rs | 199 ++++ .../mariadb_mmontes_io/v1alpha1/sqljobs.rs | 193 ++++ .../v1alpha1/scrapeconfigs.rs | 5 + .../v1alpha1/opentelemetrycollectors.rs | 28 + .../v1alpha1/nodeupgradejobs.rs | 102 +- .../src/ray_io/v1/rayclusters.rs | 2 + .../src/ray_io/v1/rayjobs.rs | 2 + .../src/ray_io/v1/rayservices.rs | 22 +- .../src/ray_io/v1alpha1/rayservices.rs | 20 - .../v1/teleportloginrules.rs | 62 +- .../v1/teleportoktaimportrules.rs | 62 +- .../v2/teleportsamlconnectors.rs | 62 +- .../v2/teleportusers.rs | 62 +- .../v3/teleportgithubconnectors.rs | 62 +- .../v3/teleportoidcconnectors.rs | 62 +- .../v1alpha1/extensionconfigs.rs | 97 +- 203 files changed, 16604 insertions(+), 3545 deletions(-) diff --git a/crd-catalog/apache/apisix-ingress-controller/apisix.apache.org/v2/apisixroutes.yaml b/crd-catalog/apache/apisix-ingress-controller/apisix.apache.org/v2/apisixroutes.yaml index 45b5df617..f2e6ff228 100644 --- a/crd-catalog/apache/apisix-ingress-controller/apisix.apache.org/v2/apisixroutes.yaml +++ b/crd-catalog/apache/apisix-ingress-controller/apisix.apache.org/v2/apisixroutes.yaml @@ -207,7 +207,6 @@ spec: type: array paths: items: - pattern: ^/[a-zA-Z0-9\-._~%!$&'()+,;=:@/]*\*?$ type: string minItems: 1 type: array @@ -225,6 +224,9 @@ spec: plugin_config_name: minLength: 1 type: string + plugin_config_namespace: + minLength: 1 + type: string plugins: items: properties: diff --git a/crd-catalog/apache/camel-k/camel.apache.org/v1/builds.yaml b/crd-catalog/apache/camel-k/camel.apache.org/v1/builds.yaml index 988223a94..212b7d58b 100644 --- a/crd-catalog/apache/camel-k/camel.apache.org/v1/builds.yaml +++ b/crd-catalog/apache/camel-k/camel.apache.org/v1/builds.yaml @@ -110,7 +110,7 @@ spec: description: Task represents the abstract task. Only one of the task should be configured to represent the specific task chosen. properties: buildah: - description: 'a BuildahTask, for Buildah strategy Deprecated: use spectrum, jib or s2i instead' + description: 'a BuildahTask, for Buildah strategy Deprecated: use spectrum, jib, s2i or a custom publishing strategy instead' properties: baseImage: description: base image layer @@ -662,6 +662,13 @@ spec: name: description: name of the task type: string + publishingImage: + description: the desired image build name + type: string + userId: + description: the user id used to run the container + format: int64 + type: integer type: object jib: description: a JibTask, for Jib strategy @@ -739,7 +746,7 @@ spec: type: object type: object kaniko: - description: 'a KanikoTask, for Kaniko strategy Deprecated: use spectrum, jib or s2i instead' + description: 'a KanikoTask, for Kaniko strategy Deprecated: use spectrum, jib, s2i or a custom publishing strategy instead' properties: baseImage: description: base image layer diff --git a/crd-catalog/apache/camel-k/camel.apache.org/v1/integrationkits.yaml b/crd-catalog/apache/camel-k/camel.apache.org/v1/integrationkits.yaml index 78a056ad3..f76465748 100644 --- a/crd-catalog/apache/camel-k/camel.apache.org/v1/integrationkits.yaml +++ b/crd-catalog/apache/camel-k/camel.apache.org/v1/integrationkits.yaml @@ -171,7 +171,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean incrementalImageBuild: - default: true description: Use the incremental image build option, to reuse existing containers (default `true`) type: boolean limitCPU: @@ -191,7 +190,6 @@ spec: description: Defines a set of nodes the builder pod is eligible to be scheduled on, based on labels on the node. type: object orderStrategy: - default: sequential description: The build order strategy to use, either `dependencies`, `fifo` or `sequential` (default `sequential`) enum: - dependencies @@ -210,7 +208,6 @@ spec: description: 'When using `pod` strategy, the minimum amount of memory required by the pod builder. Deprecated: use TasksRequestCPU instead with task name `builder`.' type: string strategy: - default: routine description: The strategy to use, either `pod` or `routine` (default `routine`) enum: - pod @@ -221,6 +218,9 @@ spec: items: type: string type: array + tasksFilter: + description: A list of tasks sorted by the order of execution in a csv format, ie, `,,...`. Mind that you must include also the operator tasks (`builder`, `quarkus-native`, `package`, `jib`, `spectrum`, `s2i`) if you need to execute them. Useful only with `pod` strategy. + type: string tasksLimitCPU: description: A list of limit cpu configuration for the specific task with format `:`. items: @@ -242,7 +242,7 @@ spec: type: string type: array verbose: - description: Enable verbose logging on build components that support it (e.g. Kaniko build pod). + description: Enable verbose logging on build components that support it (e.g. Kaniko build pod). Deprecated no longer in use type: boolean type: object camel: @@ -268,8 +268,6 @@ spec: description: 'The Quarkus trait configures the Quarkus runtime. It''s enabled by default. NOTE: Compiling to a native executable, requires at least 4GiB of memory, so the Pod running the native build must have enough memory available.' properties: buildMode: - default: - - jvm description: 'The Quarkus mode to run: either `jvm` or `native` (default `jvm`). In case both `jvm` and `native` are specified, two `IntegrationKit` resources are created, with the `native` kit having precedence over the `jvm` one once ready.' items: description: QuarkusMode is the type of Quarkus build packaging. @@ -286,7 +284,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean nativeBaseImage: - default: quay.io/quarkus/quarkus-micro-image:2.0 description: The base image to use when running a native build (default `quay.io/quarkus/quarkus-micro-image:2.0`) type: string nativeBuilderImage: diff --git a/crd-catalog/apache/camel-k/camel.apache.org/v1/integrationplatforms.yaml b/crd-catalog/apache/camel-k/camel.apache.org/v1/integrationplatforms.yaml index b58c2c122..69c32e0c7 100644 --- a/crd-catalog/apache/camel-k/camel.apache.org/v1/integrationplatforms.yaml +++ b/crd-catalog/apache/camel-k/camel.apache.org/v1/integrationplatforms.yaml @@ -379,7 +379,6 @@ spec: type: string type: array podAffinity: - default: false description: Always co-locates multiple replicas of the integration in the same node (default `false`). type: boolean podAffinityLabels: @@ -388,7 +387,6 @@ spec: type: string type: array podAntiAffinity: - default: false description: Never co-locates multiple replicas of the integration in the same node (default `false`). type: boolean podAntiAffinityLabels: @@ -411,7 +409,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean incrementalImageBuild: - default: true description: Use the incremental image build option, to reuse existing containers (default `true`) type: boolean limitCPU: @@ -431,7 +428,6 @@ spec: description: Defines a set of nodes the builder pod is eligible to be scheduled on, based on labels on the node. type: object orderStrategy: - default: sequential description: The build order strategy to use, either `dependencies`, `fifo` or `sequential` (default `sequential`) enum: - dependencies @@ -450,7 +446,6 @@ spec: description: 'When using `pod` strategy, the minimum amount of memory required by the pod builder. Deprecated: use TasksRequestCPU instead with task name `builder`.' type: string strategy: - default: routine description: The strategy to use, either `pod` or `routine` (default `routine`) enum: - pod @@ -461,6 +456,9 @@ spec: items: type: string type: array + tasksFilter: + description: A list of tasks sorted by the order of execution in a csv format, ie, `,,...`. Mind that you must include also the operator tasks (`builder`, `quarkus-native`, `package`, `jib`, `spectrum`, `s2i`) if you need to execute them. Useful only with `pod` strategy. + type: string tasksLimitCPU: description: A list of limit cpu configuration for the specific task with format `:`. items: @@ -482,7 +480,7 @@ spec: type: string type: array verbose: - description: Enable verbose logging on build components that support it (e.g. Kaniko build pod). + description: Enable verbose logging on build components that support it (e.g. Kaniko build pod). Deprecated no longer in use type: boolean type: object camel: @@ -537,11 +535,9 @@ spec: description: The maximum amount of memory required. type: string name: - default: integration description: The main container name. It's named `integration` by default. type: string port: - default: 8080 description: To configure a different port exposed by the container (default `8080`). type: integer portName: @@ -554,11 +550,9 @@ spec: description: The minimum amount of memory required. type: string servicePort: - default: 80 description: To configure under which service port the container port is to be exposed (default `80`). type: integer servicePortName: - default: http description: To configure under which service port name the container port is to be exposed (default `http`). type: string type: object @@ -566,7 +560,6 @@ spec: description: The configuration of Cron trait properties: activeDeadlineSeconds: - default: 60 description: Specifies the duration in seconds, relative to the start time, that the job may be continuously active before it is considered to be failed. It defaults to 60s. format: int64 type: integer @@ -574,7 +567,6 @@ spec: description: "Automatically deploy the integration as CronJob when all routes are either starting from a periodic consumer (only `cron`, `timer` and `quartz` are supported) or a passive consumer (e.g. `direct` is a passive consumer). \n It's required that all periodic consumers have the same period, and it can be expressed as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`, while `35m` or `50s` cannot)." type: boolean backoffLimit: - default: 2 description: Specifies the number of retries before marking the job failed. It defaults to 2. format: int32 type: integer @@ -635,7 +627,6 @@ spec: - knative-service type: string useSSA: - default: true description: Use server-side apply to update the owned resources (default `true`). Note that it automatically falls back to client-side patching, if SSA is not available, e.g., on old Kubernetes clusters. type: boolean type: object @@ -650,16 +641,13 @@ spec: description: 'Deprecated: no longer in use.' type: boolean progressDeadlineSeconds: - default: 60 description: The maximum time in seconds for the deployment to make progress before it is considered to be failed. It defaults to `60s`. format: int32 type: integer rollingUpdateMaxSurge: - default: 25 description: 'The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to `25%`.' type: integer rollingUpdateMaxUnavailable: - default: 25 description: 'The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to `25%`.' type: integer strategy: @@ -677,14 +665,12 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true containerMeta: - default: true description: Enables injection of `NAMESPACE` and `POD_NAME` environment variables (default `true`) type: boolean enabled: description: 'Deprecated: no longer in use.' type: boolean httpProxy: - default: true description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` environment variables (default `true`) type: boolean vars: @@ -715,7 +701,6 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true discoveryCache: - default: memory description: 'Discovery client cache to be used, either `disabled`, `disk` or `memory` (default `memory`). Deprecated: to be removed from trait configuration.' enum: - disabled @@ -749,11 +734,9 @@ spec: format: int32 type: integer livenessProbeEnabled: - default: false description: Configures the liveness probe for the integration container (default `false`). type: boolean livenessScheme: - default: HTTP description: Scheme to use when connecting to the liveness probe (default `HTTP`). type: string livenessSuccessThreshold: @@ -777,11 +760,9 @@ spec: format: int32 type: integer readinessProbeEnabled: - default: true description: Configures the readiness probe for the integration container (default `true`). type: boolean readinessScheme: - default: HTTP description: Scheme to use when connecting to the readiness probe (default `HTTP`). type: string readinessSuccessThreshold: @@ -805,11 +786,9 @@ spec: format: int32 type: integer startupProbeEnabled: - default: false description: Configures the startup probe for the integration container (default `false`). type: boolean startupScheme: - default: HTTP description: Scheme to use when connecting to the startup probe (default `HTTP`). type: string startupSuccessThreshold: @@ -843,11 +822,9 @@ spec: description: To configure the host exposed by the ingress. type: string path: - default: / description: To configure the path exposed by the ingress (default `/`). type: string pathType: - default: Prefix description: To configure the path type exposed by the ingress. One of `Exact`, `Prefix`, `ImplementationSpecific` (default to `Prefix`). enum: - Exact @@ -859,7 +836,6 @@ spec: description: The configuration of Istio trait properties: allow: - default: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 description: Configures a (comma-separated) list of CIDR subnets that should not be intercepted by the Istio proxy (`10.0.0.0/8,172.16.0.0/12,192.168.0.0/16` by default). type: string configuration: @@ -889,7 +865,6 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true discoveryEnabled: - default: false description: Listen for multicast requests (default `false`) type: boolean enabled: @@ -899,7 +874,6 @@ spec: description: Mandate the client certificate contains a client flag in the extended key usage section, applicable when `protocol` is `https` and `use-ssl-client-authentication` is `true` (default `true` for OpenShift). type: boolean host: - default: '*' description: The Host address to which the Jolokia agent should bind to. If `"\*"` or `"0.0.0.0"` is given, the servers binds to every network interface (default `"*"`). type: string options: @@ -911,7 +885,6 @@ spec: description: The password used for authentication, applicable when the `user` option is set. type: string port: - default: 8778 description: The Jolokia endpoint port (default `8778`). type: integer protocol: @@ -938,7 +911,6 @@ spec: description: Activates remote debugging, so that a debugger can be attached to the JVM, e.g., using port-forwarding type: boolean debugAddress: - default: '*:5005' description: Transport address at which to listen for the newly launched JVM (default `*:5005`) type: string debugSuspend: @@ -953,7 +925,6 @@ spec: type: string type: array printCommand: - default: true description: Prints the command used the start the JVM in the container logs (default `true`) type: boolean type: object @@ -961,7 +932,6 @@ spec: description: The configuration of Kamelets trait properties: auto: - default: true description: Automatically inject all referenced Kamelets and their default configuration (enabled by default) type: boolean configuration: @@ -975,7 +945,6 @@ spec: description: Comma separated list of Kamelet names to load into the current integration type: string mountPoint: - default: /etc/camel/kamelets description: The directory where the application mounts and reads Kamelet spec (default `/etc/camel/kamelets`) type: string type: object @@ -1039,7 +1008,6 @@ spec: description: Enables filtering on events based on the header "ce-knativehistory". Since this header has been removed in newer versions of Knative, filtering is disabled by default. type: boolean namespaceLabel: - default: true description: 'Enables the camel-k-operator to set the "bindings.knative.dev/include=true" label to the namespace As Knative requires this label to perform injection of K_SINK URL into the service. If this is false, the integration pod may start and fail, read the SinkBinding Knative documentation. (default: true)' type: boolean sinkBinding: @@ -1114,7 +1082,6 @@ spec: description: Enable "pretty printing" of the JSON logs type: boolean level: - default: INFO description: Adjust the logging level (defaults to `INFO`) enum: - FATAL @@ -1150,7 +1117,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean hotReload: - default: false description: Enable "hot reload" when a secret/configmap mounted is edited (default `false`) type: boolean resources: @@ -1235,7 +1201,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean global: - default: true description: Indicates if the platform should be created globally in the case of global operator (default true). type: boolean type: object @@ -1261,7 +1226,6 @@ spec: description: Can be used to enable or disable a trait. All traits share this common property. type: boolean podMonitor: - default: true description: Whether a `PodMonitor` resource is created (default `true`). type: boolean podMonitorLabels: @@ -1294,8 +1258,6 @@ spec: description: The configuration of Quarkus trait properties: buildMode: - default: - - jvm description: 'The Quarkus mode to run: either `jvm` or `native` (default `jvm`). In case both `jvm` and `native` are specified, two `IntegrationKit` resources are created, with the `native` kit having precedence over the `jvm` one once ready.' items: description: QuarkusMode is the type of Quarkus build packaging. @@ -1312,7 +1274,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean nativeBaseImage: - default: quay.io/quarkus/quarkus-micro-image:2.0 description: The base image to use when running a native build (default `quay.io/quarkus/quarkus-micro-image:2.0`) type: string nativeBuilderImage: @@ -1410,7 +1371,6 @@ spec: description: Can be used to enable or disable a trait. All traits share this common property. type: boolean nodePort: - default: false description: 'Enable Service to be exposed as NodePort (default `false`). Deprecated: Use service type instead.' type: boolean type: @@ -1841,7 +1801,6 @@ spec: type: string type: array podAffinity: - default: false description: Always co-locates multiple replicas of the integration in the same node (default `false`). type: boolean podAffinityLabels: @@ -1850,7 +1809,6 @@ spec: type: string type: array podAntiAffinity: - default: false description: Never co-locates multiple replicas of the integration in the same node (default `false`). type: boolean podAntiAffinityLabels: @@ -1873,7 +1831,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean incrementalImageBuild: - default: true description: Use the incremental image build option, to reuse existing containers (default `true`) type: boolean limitCPU: @@ -1893,7 +1850,6 @@ spec: description: Defines a set of nodes the builder pod is eligible to be scheduled on, based on labels on the node. type: object orderStrategy: - default: sequential description: The build order strategy to use, either `dependencies`, `fifo` or `sequential` (default `sequential`) enum: - dependencies @@ -1912,7 +1868,6 @@ spec: description: 'When using `pod` strategy, the minimum amount of memory required by the pod builder. Deprecated: use TasksRequestCPU instead with task name `builder`.' type: string strategy: - default: routine description: The strategy to use, either `pod` or `routine` (default `routine`) enum: - pod @@ -1923,6 +1878,9 @@ spec: items: type: string type: array + tasksFilter: + description: A list of tasks sorted by the order of execution in a csv format, ie, `,,...`. Mind that you must include also the operator tasks (`builder`, `quarkus-native`, `package`, `jib`, `spectrum`, `s2i`) if you need to execute them. Useful only with `pod` strategy. + type: string tasksLimitCPU: description: A list of limit cpu configuration for the specific task with format `:`. items: @@ -1944,7 +1902,7 @@ spec: type: string type: array verbose: - description: Enable verbose logging on build components that support it (e.g. Kaniko build pod). + description: Enable verbose logging on build components that support it (e.g. Kaniko build pod). Deprecated no longer in use type: boolean type: object camel: @@ -1999,11 +1957,9 @@ spec: description: The maximum amount of memory required. type: string name: - default: integration description: The main container name. It's named `integration` by default. type: string port: - default: 8080 description: To configure a different port exposed by the container (default `8080`). type: integer portName: @@ -2016,11 +1972,9 @@ spec: description: The minimum amount of memory required. type: string servicePort: - default: 80 description: To configure under which service port the container port is to be exposed (default `80`). type: integer servicePortName: - default: http description: To configure under which service port name the container port is to be exposed (default `http`). type: string type: object @@ -2028,7 +1982,6 @@ spec: description: The configuration of Cron trait properties: activeDeadlineSeconds: - default: 60 description: Specifies the duration in seconds, relative to the start time, that the job may be continuously active before it is considered to be failed. It defaults to 60s. format: int64 type: integer @@ -2036,7 +1989,6 @@ spec: description: "Automatically deploy the integration as CronJob when all routes are either starting from a periodic consumer (only `cron`, `timer` and `quartz` are supported) or a passive consumer (e.g. `direct` is a passive consumer). \n It's required that all periodic consumers have the same period, and it can be expressed as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`, while `35m` or `50s` cannot)." type: boolean backoffLimit: - default: 2 description: Specifies the number of retries before marking the job failed. It defaults to 2. format: int32 type: integer @@ -2097,7 +2049,6 @@ spec: - knative-service type: string useSSA: - default: true description: Use server-side apply to update the owned resources (default `true`). Note that it automatically falls back to client-side patching, if SSA is not available, e.g., on old Kubernetes clusters. type: boolean type: object @@ -2112,16 +2063,13 @@ spec: description: 'Deprecated: no longer in use.' type: boolean progressDeadlineSeconds: - default: 60 description: The maximum time in seconds for the deployment to make progress before it is considered to be failed. It defaults to `60s`. format: int32 type: integer rollingUpdateMaxSurge: - default: 25 description: 'The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to `25%`.' type: integer rollingUpdateMaxUnavailable: - default: 25 description: 'The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to `25%`.' type: integer strategy: @@ -2139,14 +2087,12 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true containerMeta: - default: true description: Enables injection of `NAMESPACE` and `POD_NAME` environment variables (default `true`) type: boolean enabled: description: 'Deprecated: no longer in use.' type: boolean httpProxy: - default: true description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` environment variables (default `true`) type: boolean vars: @@ -2177,7 +2123,6 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true discoveryCache: - default: memory description: 'Discovery client cache to be used, either `disabled`, `disk` or `memory` (default `memory`). Deprecated: to be removed from trait configuration.' enum: - disabled @@ -2211,11 +2156,9 @@ spec: format: int32 type: integer livenessProbeEnabled: - default: false description: Configures the liveness probe for the integration container (default `false`). type: boolean livenessScheme: - default: HTTP description: Scheme to use when connecting to the liveness probe (default `HTTP`). type: string livenessSuccessThreshold: @@ -2239,11 +2182,9 @@ spec: format: int32 type: integer readinessProbeEnabled: - default: true description: Configures the readiness probe for the integration container (default `true`). type: boolean readinessScheme: - default: HTTP description: Scheme to use when connecting to the readiness probe (default `HTTP`). type: string readinessSuccessThreshold: @@ -2267,11 +2208,9 @@ spec: format: int32 type: integer startupProbeEnabled: - default: false description: Configures the startup probe for the integration container (default `false`). type: boolean startupScheme: - default: HTTP description: Scheme to use when connecting to the startup probe (default `HTTP`). type: string startupSuccessThreshold: @@ -2305,11 +2244,9 @@ spec: description: To configure the host exposed by the ingress. type: string path: - default: / description: To configure the path exposed by the ingress (default `/`). type: string pathType: - default: Prefix description: To configure the path type exposed by the ingress. One of `Exact`, `Prefix`, `ImplementationSpecific` (default to `Prefix`). enum: - Exact @@ -2321,7 +2258,6 @@ spec: description: The configuration of Istio trait properties: allow: - default: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 description: Configures a (comma-separated) list of CIDR subnets that should not be intercepted by the Istio proxy (`10.0.0.0/8,172.16.0.0/12,192.168.0.0/16` by default). type: string configuration: @@ -2351,7 +2287,6 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true discoveryEnabled: - default: false description: Listen for multicast requests (default `false`) type: boolean enabled: @@ -2361,7 +2296,6 @@ spec: description: Mandate the client certificate contains a client flag in the extended key usage section, applicable when `protocol` is `https` and `use-ssl-client-authentication` is `true` (default `true` for OpenShift). type: boolean host: - default: '*' description: The Host address to which the Jolokia agent should bind to. If `"\*"` or `"0.0.0.0"` is given, the servers binds to every network interface (default `"*"`). type: string options: @@ -2373,7 +2307,6 @@ spec: description: The password used for authentication, applicable when the `user` option is set. type: string port: - default: 8778 description: The Jolokia endpoint port (default `8778`). type: integer protocol: @@ -2400,7 +2333,6 @@ spec: description: Activates remote debugging, so that a debugger can be attached to the JVM, e.g., using port-forwarding type: boolean debugAddress: - default: '*:5005' description: Transport address at which to listen for the newly launched JVM (default `*:5005`) type: string debugSuspend: @@ -2415,7 +2347,6 @@ spec: type: string type: array printCommand: - default: true description: Prints the command used the start the JVM in the container logs (default `true`) type: boolean type: object @@ -2423,7 +2354,6 @@ spec: description: The configuration of Kamelets trait properties: auto: - default: true description: Automatically inject all referenced Kamelets and their default configuration (enabled by default) type: boolean configuration: @@ -2437,7 +2367,6 @@ spec: description: Comma separated list of Kamelet names to load into the current integration type: string mountPoint: - default: /etc/camel/kamelets description: The directory where the application mounts and reads Kamelet spec (default `/etc/camel/kamelets`) type: string type: object @@ -2501,7 +2430,6 @@ spec: description: Enables filtering on events based on the header "ce-knativehistory". Since this header has been removed in newer versions of Knative, filtering is disabled by default. type: boolean namespaceLabel: - default: true description: 'Enables the camel-k-operator to set the "bindings.knative.dev/include=true" label to the namespace As Knative requires this label to perform injection of K_SINK URL into the service. If this is false, the integration pod may start and fail, read the SinkBinding Knative documentation. (default: true)' type: boolean sinkBinding: @@ -2576,7 +2504,6 @@ spec: description: Enable "pretty printing" of the JSON logs type: boolean level: - default: INFO description: Adjust the logging level (defaults to `INFO`) enum: - FATAL @@ -2612,7 +2539,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean hotReload: - default: false description: Enable "hot reload" when a secret/configmap mounted is edited (default `false`) type: boolean resources: @@ -2697,7 +2623,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean global: - default: true description: Indicates if the platform should be created globally in the case of global operator (default true). type: boolean type: object @@ -2723,7 +2648,6 @@ spec: description: Can be used to enable or disable a trait. All traits share this common property. type: boolean podMonitor: - default: true description: Whether a `PodMonitor` resource is created (default `true`). type: boolean podMonitorLabels: @@ -2756,8 +2680,6 @@ spec: description: The configuration of Quarkus trait properties: buildMode: - default: - - jvm description: 'The Quarkus mode to run: either `jvm` or `native` (default `jvm`). In case both `jvm` and `native` are specified, two `IntegrationKit` resources are created, with the `native` kit having precedence over the `jvm` one once ready.' items: description: QuarkusMode is the type of Quarkus build packaging. @@ -2774,7 +2696,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean nativeBaseImage: - default: quay.io/quarkus/quarkus-micro-image:2.0 description: The base image to use when running a native build (default `quay.io/quarkus/quarkus-micro-image:2.0`) type: string nativeBuilderImage: @@ -2872,7 +2793,6 @@ spec: description: Can be used to enable or disable a trait. All traits share this common property. type: boolean nodePort: - default: false description: 'Enable Service to be exposed as NodePort (default `false`). Deprecated: Use service type instead.' type: boolean type: diff --git a/crd-catalog/apache/camel-k/camel.apache.org/v1/integrations.yaml b/crd-catalog/apache/camel-k/camel.apache.org/v1/integrations.yaml index ee531508f..a6c7c4885 100644 --- a/crd-catalog/apache/camel-k/camel.apache.org/v1/integrations.yaml +++ b/crd-catalog/apache/camel-k/camel.apache.org/v1/integrations.yaml @@ -3772,7 +3772,6 @@ spec: type: string type: array podAffinity: - default: false description: Always co-locates multiple replicas of the integration in the same node (default `false`). type: boolean podAffinityLabels: @@ -3781,7 +3780,6 @@ spec: type: string type: array podAntiAffinity: - default: false description: Never co-locates multiple replicas of the integration in the same node (default `false`). type: boolean podAntiAffinityLabels: @@ -3804,7 +3802,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean incrementalImageBuild: - default: true description: Use the incremental image build option, to reuse existing containers (default `true`) type: boolean limitCPU: @@ -3824,7 +3821,6 @@ spec: description: Defines a set of nodes the builder pod is eligible to be scheduled on, based on labels on the node. type: object orderStrategy: - default: sequential description: The build order strategy to use, either `dependencies`, `fifo` or `sequential` (default `sequential`) enum: - dependencies @@ -3843,7 +3839,6 @@ spec: description: 'When using `pod` strategy, the minimum amount of memory required by the pod builder. Deprecated: use TasksRequestCPU instead with task name `builder`.' type: string strategy: - default: routine description: The strategy to use, either `pod` or `routine` (default `routine`) enum: - pod @@ -3854,6 +3849,9 @@ spec: items: type: string type: array + tasksFilter: + description: A list of tasks sorted by the order of execution in a csv format, ie, `,,...`. Mind that you must include also the operator tasks (`builder`, `quarkus-native`, `package`, `jib`, `spectrum`, `s2i`) if you need to execute them. Useful only with `pod` strategy. + type: string tasksLimitCPU: description: A list of limit cpu configuration for the specific task with format `:`. items: @@ -3875,7 +3873,7 @@ spec: type: string type: array verbose: - description: Enable verbose logging on build components that support it (e.g. Kaniko build pod). + description: Enable verbose logging on build components that support it (e.g. Kaniko build pod). Deprecated no longer in use type: boolean type: object camel: @@ -3930,11 +3928,9 @@ spec: description: The maximum amount of memory required. type: string name: - default: integration description: The main container name. It's named `integration` by default. type: string port: - default: 8080 description: To configure a different port exposed by the container (default `8080`). type: integer portName: @@ -3947,11 +3943,9 @@ spec: description: The minimum amount of memory required. type: string servicePort: - default: 80 description: To configure under which service port the container port is to be exposed (default `80`). type: integer servicePortName: - default: http description: To configure under which service port name the container port is to be exposed (default `http`). type: string type: object @@ -3959,7 +3953,6 @@ spec: description: The configuration of Cron trait properties: activeDeadlineSeconds: - default: 60 description: Specifies the duration in seconds, relative to the start time, that the job may be continuously active before it is considered to be failed. It defaults to 60s. format: int64 type: integer @@ -3967,7 +3960,6 @@ spec: description: "Automatically deploy the integration as CronJob when all routes are either starting from a periodic consumer (only `cron`, `timer` and `quartz` are supported) or a passive consumer (e.g. `direct` is a passive consumer). \n It's required that all periodic consumers have the same period, and it can be expressed as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`, while `35m` or `50s` cannot)." type: boolean backoffLimit: - default: 2 description: Specifies the number of retries before marking the job failed. It defaults to 2. format: int32 type: integer @@ -4028,7 +4020,6 @@ spec: - knative-service type: string useSSA: - default: true description: Use server-side apply to update the owned resources (default `true`). Note that it automatically falls back to client-side patching, if SSA is not available, e.g., on old Kubernetes clusters. type: boolean type: object @@ -4043,16 +4034,13 @@ spec: description: 'Deprecated: no longer in use.' type: boolean progressDeadlineSeconds: - default: 60 description: The maximum time in seconds for the deployment to make progress before it is considered to be failed. It defaults to `60s`. format: int32 type: integer rollingUpdateMaxSurge: - default: 25 description: 'The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to `25%`.' type: integer rollingUpdateMaxUnavailable: - default: 25 description: 'The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to `25%`.' type: integer strategy: @@ -4070,14 +4058,12 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true containerMeta: - default: true description: Enables injection of `NAMESPACE` and `POD_NAME` environment variables (default `true`) type: boolean enabled: description: 'Deprecated: no longer in use.' type: boolean httpProxy: - default: true description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` environment variables (default `true`) type: boolean vars: @@ -4108,7 +4094,6 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true discoveryCache: - default: memory description: 'Discovery client cache to be used, either `disabled`, `disk` or `memory` (default `memory`). Deprecated: to be removed from trait configuration.' enum: - disabled @@ -4142,11 +4127,9 @@ spec: format: int32 type: integer livenessProbeEnabled: - default: false description: Configures the liveness probe for the integration container (default `false`). type: boolean livenessScheme: - default: HTTP description: Scheme to use when connecting to the liveness probe (default `HTTP`). type: string livenessSuccessThreshold: @@ -4170,11 +4153,9 @@ spec: format: int32 type: integer readinessProbeEnabled: - default: true description: Configures the readiness probe for the integration container (default `true`). type: boolean readinessScheme: - default: HTTP description: Scheme to use when connecting to the readiness probe (default `HTTP`). type: string readinessSuccessThreshold: @@ -4198,11 +4179,9 @@ spec: format: int32 type: integer startupProbeEnabled: - default: false description: Configures the startup probe for the integration container (default `false`). type: boolean startupScheme: - default: HTTP description: Scheme to use when connecting to the startup probe (default `HTTP`). type: string startupSuccessThreshold: @@ -4236,11 +4215,9 @@ spec: description: To configure the host exposed by the ingress. type: string path: - default: / description: To configure the path exposed by the ingress (default `/`). type: string pathType: - default: Prefix description: To configure the path type exposed by the ingress. One of `Exact`, `Prefix`, `ImplementationSpecific` (default to `Prefix`). enum: - Exact @@ -4252,7 +4229,6 @@ spec: description: The configuration of Istio trait properties: allow: - default: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 description: Configures a (comma-separated) list of CIDR subnets that should not be intercepted by the Istio proxy (`10.0.0.0/8,172.16.0.0/12,192.168.0.0/16` by default). type: string configuration: @@ -4282,7 +4258,6 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true discoveryEnabled: - default: false description: Listen for multicast requests (default `false`) type: boolean enabled: @@ -4292,7 +4267,6 @@ spec: description: Mandate the client certificate contains a client flag in the extended key usage section, applicable when `protocol` is `https` and `use-ssl-client-authentication` is `true` (default `true` for OpenShift). type: boolean host: - default: '*' description: The Host address to which the Jolokia agent should bind to. If `"\*"` or `"0.0.0.0"` is given, the servers binds to every network interface (default `"*"`). type: string options: @@ -4304,7 +4278,6 @@ spec: description: The password used for authentication, applicable when the `user` option is set. type: string port: - default: 8778 description: The Jolokia endpoint port (default `8778`). type: integer protocol: @@ -4331,7 +4304,6 @@ spec: description: Activates remote debugging, so that a debugger can be attached to the JVM, e.g., using port-forwarding type: boolean debugAddress: - default: '*:5005' description: Transport address at which to listen for the newly launched JVM (default `*:5005`) type: string debugSuspend: @@ -4346,7 +4318,6 @@ spec: type: string type: array printCommand: - default: true description: Prints the command used the start the JVM in the container logs (default `true`) type: boolean type: object @@ -4354,7 +4325,6 @@ spec: description: The configuration of Kamelets trait properties: auto: - default: true description: Automatically inject all referenced Kamelets and their default configuration (enabled by default) type: boolean configuration: @@ -4368,7 +4338,6 @@ spec: description: Comma separated list of Kamelet names to load into the current integration type: string mountPoint: - default: /etc/camel/kamelets description: The directory where the application mounts and reads Kamelet spec (default `/etc/camel/kamelets`) type: string type: object @@ -4432,7 +4401,6 @@ spec: description: Enables filtering on events based on the header "ce-knativehistory". Since this header has been removed in newer versions of Knative, filtering is disabled by default. type: boolean namespaceLabel: - default: true description: 'Enables the camel-k-operator to set the "bindings.knative.dev/include=true" label to the namespace As Knative requires this label to perform injection of K_SINK URL into the service. If this is false, the integration pod may start and fail, read the SinkBinding Knative documentation. (default: true)' type: boolean sinkBinding: @@ -4507,7 +4475,6 @@ spec: description: Enable "pretty printing" of the JSON logs type: boolean level: - default: INFO description: Adjust the logging level (defaults to `INFO`) enum: - FATAL @@ -4543,7 +4510,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean hotReload: - default: false description: Enable "hot reload" when a secret/configmap mounted is edited (default `false`) type: boolean resources: @@ -4628,7 +4594,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean global: - default: true description: Indicates if the platform should be created globally in the case of global operator (default true). type: boolean type: object @@ -4654,7 +4619,6 @@ spec: description: Can be used to enable or disable a trait. All traits share this common property. type: boolean podMonitor: - default: true description: Whether a `PodMonitor` resource is created (default `true`). type: boolean podMonitorLabels: @@ -4687,8 +4651,6 @@ spec: description: The configuration of Quarkus trait properties: buildMode: - default: - - jvm description: 'The Quarkus mode to run: either `jvm` or `native` (default `jvm`). In case both `jvm` and `native` are specified, two `IntegrationKit` resources are created, with the `native` kit having precedence over the `jvm` one once ready.' items: description: QuarkusMode is the type of Quarkus build packaging. @@ -4705,7 +4667,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean nativeBaseImage: - default: quay.io/quarkus/quarkus-micro-image:2.0 description: The base image to use when running a native build (default `quay.io/quarkus/quarkus-micro-image:2.0`) type: string nativeBuilderImage: @@ -4803,7 +4764,6 @@ spec: description: Can be used to enable or disable a trait. All traits share this common property. type: boolean nodePort: - default: false description: 'Enable Service to be exposed as NodePort (default `false`). Deprecated: Use service type instead.' type: boolean type: diff --git a/crd-catalog/apache/camel-k/camel.apache.org/v1alpha1/kameletbindings.yaml b/crd-catalog/apache/camel-k/camel.apache.org/v1alpha1/kameletbindings.yaml index 0ac3cbce3..1bc938ddf 100644 --- a/crd-catalog/apache/camel-k/camel.apache.org/v1alpha1/kameletbindings.yaml +++ b/crd-catalog/apache/camel-k/camel.apache.org/v1alpha1/kameletbindings.yaml @@ -3769,7 +3769,6 @@ spec: type: string type: array podAffinity: - default: false description: Always co-locates multiple replicas of the integration in the same node (default `false`). type: boolean podAffinityLabels: @@ -3778,7 +3777,6 @@ spec: type: string type: array podAntiAffinity: - default: false description: Never co-locates multiple replicas of the integration in the same node (default `false`). type: boolean podAntiAffinityLabels: @@ -3801,7 +3799,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean incrementalImageBuild: - default: true description: Use the incremental image build option, to reuse existing containers (default `true`) type: boolean limitCPU: @@ -3821,7 +3818,6 @@ spec: description: Defines a set of nodes the builder pod is eligible to be scheduled on, based on labels on the node. type: object orderStrategy: - default: sequential description: The build order strategy to use, either `dependencies`, `fifo` or `sequential` (default `sequential`) enum: - dependencies @@ -3840,7 +3836,6 @@ spec: description: 'When using `pod` strategy, the minimum amount of memory required by the pod builder. Deprecated: use TasksRequestCPU instead with task name `builder`.' type: string strategy: - default: routine description: The strategy to use, either `pod` or `routine` (default `routine`) enum: - pod @@ -3851,6 +3846,9 @@ spec: items: type: string type: array + tasksFilter: + description: A list of tasks sorted by the order of execution in a csv format, ie, `,,...`. Mind that you must include also the operator tasks (`builder`, `quarkus-native`, `package`, `jib`, `spectrum`, `s2i`) if you need to execute them. Useful only with `pod` strategy. + type: string tasksLimitCPU: description: A list of limit cpu configuration for the specific task with format `:`. items: @@ -3872,7 +3870,7 @@ spec: type: string type: array verbose: - description: Enable verbose logging on build components that support it (e.g. Kaniko build pod). + description: Enable verbose logging on build components that support it (e.g. Kaniko build pod). Deprecated no longer in use type: boolean type: object camel: @@ -3927,11 +3925,9 @@ spec: description: The maximum amount of memory required. type: string name: - default: integration description: The main container name. It's named `integration` by default. type: string port: - default: 8080 description: To configure a different port exposed by the container (default `8080`). type: integer portName: @@ -3944,11 +3940,9 @@ spec: description: The minimum amount of memory required. type: string servicePort: - default: 80 description: To configure under which service port the container port is to be exposed (default `80`). type: integer servicePortName: - default: http description: To configure under which service port name the container port is to be exposed (default `http`). type: string type: object @@ -3956,7 +3950,6 @@ spec: description: The configuration of Cron trait properties: activeDeadlineSeconds: - default: 60 description: Specifies the duration in seconds, relative to the start time, that the job may be continuously active before it is considered to be failed. It defaults to 60s. format: int64 type: integer @@ -3964,7 +3957,6 @@ spec: description: "Automatically deploy the integration as CronJob when all routes are either starting from a periodic consumer (only `cron`, `timer` and `quartz` are supported) or a passive consumer (e.g. `direct` is a passive consumer). \n It's required that all periodic consumers have the same period, and it can be expressed as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`, while `35m` or `50s` cannot)." type: boolean backoffLimit: - default: 2 description: Specifies the number of retries before marking the job failed. It defaults to 2. format: int32 type: integer @@ -4025,7 +4017,6 @@ spec: - knative-service type: string useSSA: - default: true description: Use server-side apply to update the owned resources (default `true`). Note that it automatically falls back to client-side patching, if SSA is not available, e.g., on old Kubernetes clusters. type: boolean type: object @@ -4040,16 +4031,13 @@ spec: description: 'Deprecated: no longer in use.' type: boolean progressDeadlineSeconds: - default: 60 description: The maximum time in seconds for the deployment to make progress before it is considered to be failed. It defaults to `60s`. format: int32 type: integer rollingUpdateMaxSurge: - default: 25 description: 'The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to `25%`.' type: integer rollingUpdateMaxUnavailable: - default: 25 description: 'The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to `25%`.' type: integer strategy: @@ -4067,14 +4055,12 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true containerMeta: - default: true description: Enables injection of `NAMESPACE` and `POD_NAME` environment variables (default `true`) type: boolean enabled: description: 'Deprecated: no longer in use.' type: boolean httpProxy: - default: true description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` environment variables (default `true`) type: boolean vars: @@ -4105,7 +4091,6 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true discoveryCache: - default: memory description: 'Discovery client cache to be used, either `disabled`, `disk` or `memory` (default `memory`). Deprecated: to be removed from trait configuration.' enum: - disabled @@ -4139,11 +4124,9 @@ spec: format: int32 type: integer livenessProbeEnabled: - default: false description: Configures the liveness probe for the integration container (default `false`). type: boolean livenessScheme: - default: HTTP description: Scheme to use when connecting to the liveness probe (default `HTTP`). type: string livenessSuccessThreshold: @@ -4167,11 +4150,9 @@ spec: format: int32 type: integer readinessProbeEnabled: - default: true description: Configures the readiness probe for the integration container (default `true`). type: boolean readinessScheme: - default: HTTP description: Scheme to use when connecting to the readiness probe (default `HTTP`). type: string readinessSuccessThreshold: @@ -4195,11 +4176,9 @@ spec: format: int32 type: integer startupProbeEnabled: - default: false description: Configures the startup probe for the integration container (default `false`). type: boolean startupScheme: - default: HTTP description: Scheme to use when connecting to the startup probe (default `HTTP`). type: string startupSuccessThreshold: @@ -4233,11 +4212,9 @@ spec: description: To configure the host exposed by the ingress. type: string path: - default: / description: To configure the path exposed by the ingress (default `/`). type: string pathType: - default: Prefix description: To configure the path type exposed by the ingress. One of `Exact`, `Prefix`, `ImplementationSpecific` (default to `Prefix`). enum: - Exact @@ -4249,7 +4226,6 @@ spec: description: The configuration of Istio trait properties: allow: - default: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 description: Configures a (comma-separated) list of CIDR subnets that should not be intercepted by the Istio proxy (`10.0.0.0/8,172.16.0.0/12,192.168.0.0/16` by default). type: string configuration: @@ -4279,7 +4255,6 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true discoveryEnabled: - default: false description: Listen for multicast requests (default `false`) type: boolean enabled: @@ -4289,7 +4264,6 @@ spec: description: Mandate the client certificate contains a client flag in the extended key usage section, applicable when `protocol` is `https` and `use-ssl-client-authentication` is `true` (default `true` for OpenShift). type: boolean host: - default: '*' description: The Host address to which the Jolokia agent should bind to. If `"\*"` or `"0.0.0.0"` is given, the servers binds to every network interface (default `"*"`). type: string options: @@ -4301,7 +4275,6 @@ spec: description: The password used for authentication, applicable when the `user` option is set. type: string port: - default: 8778 description: The Jolokia endpoint port (default `8778`). type: integer protocol: @@ -4328,7 +4301,6 @@ spec: description: Activates remote debugging, so that a debugger can be attached to the JVM, e.g., using port-forwarding type: boolean debugAddress: - default: '*:5005' description: Transport address at which to listen for the newly launched JVM (default `*:5005`) type: string debugSuspend: @@ -4343,7 +4315,6 @@ spec: type: string type: array printCommand: - default: true description: Prints the command used the start the JVM in the container logs (default `true`) type: boolean type: object @@ -4351,7 +4322,6 @@ spec: description: The configuration of Kamelets trait properties: auto: - default: true description: Automatically inject all referenced Kamelets and their default configuration (enabled by default) type: boolean configuration: @@ -4365,7 +4335,6 @@ spec: description: Comma separated list of Kamelet names to load into the current integration type: string mountPoint: - default: /etc/camel/kamelets description: The directory where the application mounts and reads Kamelet spec (default `/etc/camel/kamelets`) type: string type: object @@ -4429,7 +4398,6 @@ spec: description: Enables filtering on events based on the header "ce-knativehistory". Since this header has been removed in newer versions of Knative, filtering is disabled by default. type: boolean namespaceLabel: - default: true description: 'Enables the camel-k-operator to set the "bindings.knative.dev/include=true" label to the namespace As Knative requires this label to perform injection of K_SINK URL into the service. If this is false, the integration pod may start and fail, read the SinkBinding Knative documentation. (default: true)' type: boolean sinkBinding: @@ -4504,7 +4472,6 @@ spec: description: Enable "pretty printing" of the JSON logs type: boolean level: - default: INFO description: Adjust the logging level (defaults to `INFO`) enum: - FATAL @@ -4540,7 +4507,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean hotReload: - default: false description: Enable "hot reload" when a secret/configmap mounted is edited (default `false`) type: boolean resources: @@ -4625,7 +4591,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean global: - default: true description: Indicates if the platform should be created globally in the case of global operator (default true). type: boolean type: object @@ -4651,7 +4616,6 @@ spec: description: Can be used to enable or disable a trait. All traits share this common property. type: boolean podMonitor: - default: true description: Whether a `PodMonitor` resource is created (default `true`). type: boolean podMonitorLabels: @@ -4684,8 +4648,6 @@ spec: description: The configuration of Quarkus trait properties: buildMode: - default: - - jvm description: 'The Quarkus mode to run: either `jvm` or `native` (default `jvm`). In case both `jvm` and `native` are specified, two `IntegrationKit` resources are created, with the `native` kit having precedence over the `jvm` one once ready.' items: description: QuarkusMode is the type of Quarkus build packaging. @@ -4702,7 +4664,6 @@ spec: description: 'Deprecated: no longer in use.' type: boolean nativeBaseImage: - default: quay.io/quarkus/quarkus-micro-image:2.0 description: The base image to use when running a native build (default `quay.io/quarkus/quarkus-micro-image:2.0`) type: string nativeBuilderImage: @@ -4800,7 +4761,6 @@ spec: description: Can be used to enable or disable a trait. All traits share this common property. type: boolean nodePort: - default: false description: 'Enable Service to be exposed as NodePort (default `false`). Deprecated: Use service type instead.' type: boolean type: 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 58f8f53d4..2ef31d05c 100644 --- a/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusters.yaml +++ b/crd-catalog/apecloud/kubeblocks/apps.kubeblocks.io/v1alpha1/clusters.yaml @@ -255,10 +255,6 @@ spec: x-kubernetes-validations: - message: name is immutable rule: self == oldSelf - noCreatePDB: - default: false - description: 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. - type: boolean nodes: description: Nodes defines the list of nodes that pods can schedule If the RsmTransformPolicy is specified as ToPod,the list of nodes will be used. If the list of nodes is empty, no specific node will be assigned. However, if the list of node is filled, all pods will be evenly scheduled across the nodes in the list. items: @@ -403,7 +399,7 @@ spec: type: array x-kubernetes-preserve-unknown-fields: true updateStrategy: - description: updateStrategy defines the update strategy for the component. + description: updateStrategy defines the update strategy for the component. Not supported. enum: - Serial - BestEffortParallel @@ -631,6 +627,8 @@ spec: x-kubernetes-validations: - message: duplicated component rule: self.all(x, size(self.filter(c, c.name == x.name)) == 1) + - message: two kinds of definition API can not be used simultaneously + rule: self.all(x, size(self.filter(c, has(c.componentDef))) == 0) || self.all(x, size(self.filter(c, has(c.componentDef))) == size(self)) monitor: description: monitor specifies the configuration of monitor properties: 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 dc4ad1d8c..02f6b99a6 100644 --- a/crd-catalog/apecloud/kubeblocks/dataprotection.kubeblocks.io/v1alpha1/backups.yaml +++ b/crd-catalog/apecloud/kubeblocks/dataprotection.kubeblocks.io/v1alpha1/backups.yaml @@ -159,13 +159,17 @@ spec: description: timeRange records the time range of backed up data, for PITR, this is the time range of recoverable data. properties: end: - description: end records the end time of backup. + description: end records the end time of backup(Coordinated Universal Time, UTC). format: date-time type: string start: - description: start records the start time of backup. + description: start records the start time of backup(Coordinated Universal Time, UTC). format: date-time type: string + timeZone: + description: 'time zone, only support zone offset, value range: "-12:59 ~ +13:00"' + pattern: ^(\+|\-)(0[0-9]|1[0-3]):([0-5][0-9])$ + type: string type: object totalSize: description: totalSize is the total size of backed up data size. A string with capacity units in the format of "1Gi", "1Mi", "1Ki". @@ -655,13 +659,17 @@ spec: description: timeRange records the time range of backed up data, for PITR, this is the time range of recoverable data. properties: end: - description: end records the end time of backup. + description: end records the end time of backup(Coordinated Universal Time, UTC). format: date-time type: string start: - description: start records the start time of backup. + description: start records the start time of backup(Coordinated Universal Time, UTC). format: date-time type: string + timeZone: + description: 'time zone, only support zone offset, value range: "-12:59 ~ +13:00"' + pattern: ^(\+|\-)(0[0-9]|1[0-3]):([0-5][0-9])$ + type: string type: object totalSize: description: totalSize is the total size of backed up data size. A string with capacity units in the format of "1Gi", "1Mi", "1Ki". If no capacity unit is specified, it is assumed to be in bytes. diff --git a/crd-catalog/cert-manager/cert-manager/acme.cert-manager.io/v1/challenges.yaml b/crd-catalog/cert-manager/cert-manager/acme.cert-manager.io/v1/challenges.yaml index acb20edff..f7bbbc0a2 100644 --- a/crd-catalog/cert-manager/cert-manager/acme.cert-manager.io/v1/challenges.yaml +++ b/crd-catalog/cert-manager/cert-manager/acme.cert-manager.io/v1/challenges.yaml @@ -150,10 +150,10 @@ spec: description: Use the Microsoft Azure DNS API to manage DNS01 challenge records. properties: clientID: - description: if both this and ClientSecret are left unset MSI will be used + description: 'Auth: Azure Service Principal: The ClientID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientSecret and TenantID must also be set.' type: string clientSecretSecretRef: - description: if both this and ClientID are left unset MSI will be used + description: 'Auth: Azure Service Principal: A reference to a Secret containing the password associated with the Service Principal. If set, ClientID and TenantID must also be set.' properties: key: description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. @@ -176,13 +176,13 @@ spec: description: name of the DNS zone that should be used type: string managedIdentity: - description: managed identity configuration, can not be used at the same time as clientID, clientSecretSecretRef or tenantID + description: 'Auth: Azure Workload Identity or Azure Managed Service Identity: Settings to enable Azure Workload Identity or Azure Managed Service Identity If set, ClientID, ClientSecret and TenantID must not be set.' properties: clientID: description: client ID of the managed identity, can not be used at the same time as resourceID type: string resourceID: - description: resource ID of the managed identity, can not be used at the same time as clientID + description: resource ID of the managed identity, can not be used at the same time as clientID Cannot be used for Azure Managed Service Identity type: string type: object resourceGroupName: @@ -192,7 +192,7 @@ spec: description: ID of the Azure subscription type: string tenantID: - description: when specifying ClientID and ClientSecret then this field is also needed + description: 'Auth: Azure Service Principal: The TenantID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientID and ClientSecret must also be set.' type: string required: - resourceGroupName diff --git a/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/clusterissuers.yaml b/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/clusterissuers.yaml index 3b899d02d..44e714974 100644 --- a/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/clusterissuers.yaml +++ b/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/clusterissuers.yaml @@ -192,10 +192,10 @@ spec: description: Use the Microsoft Azure DNS API to manage DNS01 challenge records. properties: clientID: - description: if both this and ClientSecret are left unset MSI will be used + description: 'Auth: Azure Service Principal: The ClientID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientSecret and TenantID must also be set.' type: string clientSecretSecretRef: - description: if both this and ClientID are left unset MSI will be used + description: 'Auth: Azure Service Principal: A reference to a Secret containing the password associated with the Service Principal. If set, ClientID and TenantID must also be set.' properties: key: description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. @@ -218,13 +218,13 @@ spec: description: name of the DNS zone that should be used type: string managedIdentity: - description: managed identity configuration, can not be used at the same time as clientID, clientSecretSecretRef or tenantID + description: 'Auth: Azure Workload Identity or Azure Managed Service Identity: Settings to enable Azure Workload Identity or Azure Managed Service Identity If set, ClientID, ClientSecret and TenantID must not be set.' properties: clientID: description: client ID of the managed identity, can not be used at the same time as resourceID type: string resourceID: - description: resource ID of the managed identity, can not be used at the same time as clientID + description: resource ID of the managed identity, can not be used at the same time as clientID Cannot be used for Azure Managed Service Identity type: string type: object resourceGroupName: @@ -234,7 +234,7 @@ spec: description: ID of the Azure subscription type: string tenantID: - description: when specifying ClientID and ClientSecret then this field is also needed + description: 'Auth: Azure Service Principal: The TenantID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientID and ClientSecret must also be set.' type: string required: - resourceGroupName diff --git a/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/issuers.yaml b/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/issuers.yaml index 30692ee7c..16e1fdedb 100644 --- a/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/issuers.yaml +++ b/crd-catalog/cert-manager/cert-manager/cert-manager.io/v1/issuers.yaml @@ -192,10 +192,10 @@ spec: description: Use the Microsoft Azure DNS API to manage DNS01 challenge records. properties: clientID: - description: if both this and ClientSecret are left unset MSI will be used + description: 'Auth: Azure Service Principal: The ClientID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientSecret and TenantID must also be set.' type: string clientSecretSecretRef: - description: if both this and ClientID are left unset MSI will be used + description: 'Auth: Azure Service Principal: A reference to a Secret containing the password associated with the Service Principal. If set, ClientID and TenantID must also be set.' properties: key: description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. @@ -218,13 +218,13 @@ spec: description: name of the DNS zone that should be used type: string managedIdentity: - description: managed identity configuration, can not be used at the same time as clientID, clientSecretSecretRef or tenantID + description: 'Auth: Azure Workload Identity or Azure Managed Service Identity: Settings to enable Azure Workload Identity or Azure Managed Service Identity If set, ClientID, ClientSecret and TenantID must not be set.' properties: clientID: description: client ID of the managed identity, can not be used at the same time as resourceID type: string resourceID: - description: resource ID of the managed identity, can not be used at the same time as clientID + description: resource ID of the managed identity, can not be used at the same time as clientID Cannot be used for Azure Managed Service Identity type: string type: object resourceGroupName: @@ -234,7 +234,7 @@ spec: description: ID of the Azure subscription type: string tenantID: - description: when specifying ClientID and ClientSecret then this field is also needed + description: 'Auth: Azure Service Principal: The TenantID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientID and ClientSecret must also be set.' type: string required: - resourceGroupName diff --git a/crd-catalog/cilium/cilium/cilium.io/v2/ciliumclusterwidenetworkpolicies.yaml b/crd-catalog/cilium/cilium/cilium.io/v2/ciliumclusterwidenetworkpolicies.yaml index a83294f38..0e1a731dc 100644 --- a/crd-catalog/cilium/cilium/cilium.io/v2/ciliumclusterwidenetworkpolicies.yaml +++ b/crd-catalog/cilium/cilium/cilium.io/v2/ciliumclusterwidenetworkpolicies.yaml @@ -238,7 +238,7 @@ spec: description: listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. properties: envoyConfig: - description: EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + description: EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. properties: kind: description: Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. @@ -1080,7 +1080,7 @@ spec: description: listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. properties: envoyConfig: - description: EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + description: EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. properties: kind: description: Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. @@ -1766,7 +1766,7 @@ spec: description: listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. properties: envoyConfig: - description: EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + description: EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. properties: kind: description: Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. @@ -2608,7 +2608,7 @@ spec: description: listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. properties: envoyConfig: - description: EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + description: EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. properties: kind: description: Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. diff --git a/crd-catalog/cilium/cilium/cilium.io/v2/ciliumnetworkpolicies.yaml b/crd-catalog/cilium/cilium/cilium.io/v2/ciliumnetworkpolicies.yaml index c1153c6ee..d2487dd4d 100644 --- a/crd-catalog/cilium/cilium/cilium.io/v2/ciliumnetworkpolicies.yaml +++ b/crd-catalog/cilium/cilium/cilium.io/v2/ciliumnetworkpolicies.yaml @@ -243,7 +243,7 @@ spec: description: listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. properties: envoyConfig: - description: EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + description: EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. properties: kind: description: Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. @@ -1085,7 +1085,7 @@ spec: description: listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. properties: envoyConfig: - description: EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + description: EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. properties: kind: description: Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. @@ -1771,7 +1771,7 @@ spec: description: listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. properties: envoyConfig: - description: EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + description: EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. properties: kind: description: Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. @@ -2613,7 +2613,7 @@ spec: description: listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. properties: envoyConfig: - description: EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + description: EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. properties: kind: description: Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. 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 34b75ece8..345676ec3 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 @@ -1998,6 +1998,11 @@ spec: items: type: string type: array + pg_ident: + description: PostgreSQL User Name Maps rules (lines to be appended to the pg_ident.conf file) + items: + type: string + type: array promotionTimeout: description: Specifies the maximum number of seconds to wait when promoting an instance to primary. Default value is 40000000, greater than one year in seconds, big enough to simulate an infinite timeout format: int32 diff --git a/crd-catalog/external-secrets/external-secrets/external-secrets.io/v1beta1/clustersecretstores.yaml b/crd-catalog/external-secrets/external-secrets/external-secrets.io/v1beta1/clustersecretstores.yaml index ef9cca9e9..8782a9eb0 100644 --- a/crd-catalog/external-secrets/external-secrets/external-secrets.io/v1beta1/clustersecretstores.yaml +++ b/crd-catalog/external-secrets/external-secrets/external-secrets.io/v1beta1/clustersecretstores.yaml @@ -1626,6 +1626,36 @@ spec: server: description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".' type: string + tls: + description: The configuration used for client side related TLS communication, when the Vault server requires mutual authentication. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. It's worth noting this configuration is different from the "TLS certificates auth method", which is available under the `auth.cert` section. + properties: + certSecretRef: + description: CertSecretRef is a certificate added to the transport layer when communicating with the Vault server. If no key for the Secret is specified, external-secret will default to 'tls.crt'. + properties: + key: + description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. + type: string + name: + description: The name of the Secret resource being referred to. + type: string + namespace: + description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. + type: string + type: object + keySecretRef: + description: KeySecretRef to a key in a Secret resource containing client private key added to the transport layer when communicating with the Vault server. If no key for the Secret is specified, external-secret will default to 'tls.key'. + properties: + key: + description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. + type: string + name: + description: The name of the Secret resource being referred to. + type: string + namespace: + description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. + type: string + type: object + type: object version: default: v2 description: Version is the Vault KV secret engine version. This can be either "v1" or "v2". Version defaults to "v2". diff --git a/crd-catalog/external-secrets/external-secrets/external-secrets.io/v1beta1/secretstores.yaml b/crd-catalog/external-secrets/external-secrets/external-secrets.io/v1beta1/secretstores.yaml index a6b2a530a..26bcdb74b 100644 --- a/crd-catalog/external-secrets/external-secrets/external-secrets.io/v1beta1/secretstores.yaml +++ b/crd-catalog/external-secrets/external-secrets/external-secrets.io/v1beta1/secretstores.yaml @@ -1626,6 +1626,36 @@ spec: server: description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".' type: string + tls: + description: The configuration used for client side related TLS communication, when the Vault server requires mutual authentication. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. It's worth noting this configuration is different from the "TLS certificates auth method", which is available under the `auth.cert` section. + properties: + certSecretRef: + description: CertSecretRef is a certificate added to the transport layer when communicating with the Vault server. If no key for the Secret is specified, external-secret will default to 'tls.crt'. + properties: + key: + description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. + type: string + name: + description: The name of the Secret resource being referred to. + type: string + namespace: + description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. + type: string + type: object + keySecretRef: + description: KeySecretRef to a key in a Secret resource containing client private key added to the transport layer when communicating with the Vault server. If no key for the Secret is specified, external-secret will default to 'tls.key'. + properties: + key: + description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. + type: string + name: + description: The name of the Secret resource being referred to. + type: string + namespace: + description: Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. + type: string + type: object + type: object version: default: v2 description: Version is the Vault KV secret engine version. This can be either "v1" or "v2". Version defaults to "v2". 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 c4894b022..d20cb5658 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 @@ -3613,6 +3613,180 @@ spec: - path type: object type: array + gitProtocol: + items: + properties: + description: + description: Description for the check + type: string + display: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + filename: + type: string + icon: + description: Icon for overwriting default icon on the dashboard + type: string + labels: + additionalProperties: + type: string + description: Labels for the check + type: object + metrics: + description: Metrics to expose from check results + items: + properties: + labels: + items: + properties: + name: + type: string + value: + type: string + valueExpr: + type: string + required: + - name + type: object + type: array + name: + type: string + type: + type: string + value: + type: string + type: object + type: array + name: + description: Name of the check + type: string + namespace: + description: Namespace to insert the check into, if different to the namespace the canary is defined, e.g. + type: string + password: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + helmRef: + properties: + key: + description: Key is a JSONPath expression used to fetch the key from the merged JSON. + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + serviceAccount: + description: ServiceAccount specifies the service account whose token should be fetched + type: string + type: object + type: object + repository: + type: string + test: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transform: + properties: + expr: + type: string + javascript: + type: string + jsonPath: + type: string + template: + type: string + type: object + transformDeleteStrategy: + description: Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + type: string + username: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + helmRef: + properties: + key: + description: Key is a JSONPath expression used to fetch the key from the merged JSON. + type: string + name: + type: string + required: + - key + type: object + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + type: object + serviceAccount: + description: ServiceAccount specifies the service account whose token should be fetched + type: string + type: object + type: object + required: + - name + - password + - repository + - username + type: object + type: array github: items: properties: diff --git a/crd-catalog/gravitational/teleport/resources.teleport.dev/v1/teleportloginrules.yaml b/crd-catalog/gravitational/teleport/resources.teleport.dev/v1/teleportloginrules.yaml index 91d6e1a79..0329d0dce 100644 --- a/crd-catalog/gravitational/teleport/resources.teleport.dev/v1/teleportloginrules.yaml +++ b/crd-catalog/gravitational/teleport/resources.teleport.dev/v1/teleportloginrules.yaml @@ -51,23 +51,35 @@ spec: conditions: description: Conditions represent the latest available observations of an object's state 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 }" + description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}" properties: lastTransitionTime: - description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: - description: message is a human readable message indicating details about the transition. This may be an empty string. + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. maxLength: 32768 type: string observedGeneration: - description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. format: int64 minimum: 0.0 type: integer reason: - description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ @@ -80,7 +92,12 @@ spec: - Unknown type: string type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/crd-catalog/gravitational/teleport/resources.teleport.dev/v1/teleportoktaimportrules.yaml b/crd-catalog/gravitational/teleport/resources.teleport.dev/v1/teleportoktaimportrules.yaml index 8d6729144..1273405bb 100644 --- a/crd-catalog/gravitational/teleport/resources.teleport.dev/v1/teleportoktaimportrules.yaml +++ b/crd-catalog/gravitational/teleport/resources.teleport.dev/v1/teleportoktaimportrules.yaml @@ -87,23 +87,35 @@ spec: conditions: description: Conditions represent the latest available observations of an object's state 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 }" + description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}" properties: lastTransitionTime: - description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: - description: message is a human readable message indicating details about the transition. This may be an empty string. + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. maxLength: 32768 type: string observedGeneration: - description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. format: int64 minimum: 0.0 type: integer reason: - description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ @@ -116,7 +128,12 @@ spec: - Unknown type: string type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/crd-catalog/gravitational/teleport/resources.teleport.dev/v2/teleportprovisiontokens.yaml b/crd-catalog/gravitational/teleport/resources.teleport.dev/v2/teleportprovisiontokens.yaml index 523edc787..92ec917e0 100644 --- a/crd-catalog/gravitational/teleport/resources.teleport.dev/v2/teleportprovisiontokens.yaml +++ b/crd-catalog/gravitational/teleport/resources.teleport.dev/v2/teleportprovisiontokens.yaml @@ -154,7 +154,7 @@ spec: description: EnterpriseServerHost allows joining from runners associated with a GitHub Enterprise Server instance. When unconfigured, tokens will be validated against github.com, but when configured to the host of a GHES instance, then the tokens will be validated against host. This value should be the hostname of the GHES instance, and should not include the scheme or a path. The instance must be accessible over HTTPS at this hostname and the certificate must be trusted by the Auth Server. type: string enterprise_slug: - description: EnterpriseSlug allows the slug of a GitHub Enterprise organisation to be included in the expected issuer of the OIDC tokens. This is for compatibility with the `include_enterprise_slug` option in GHE. This field should be set to the slug of your enterprise if this is enabled. If this is not enabled, then this field must be left empty. This field cannot be specified if `enterprise_server_host` is specified. See https://docs.github.com/en/enterprise-cloud@latest/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#customizing-the-issuer-value-for-an-enterprise for more information about customised issuer values. + description: EnterpriseSlug allows the slug of a GitHub Enterprise organisation to be included in the expected issuer of the OIDC tokens. This is for compatibility with the `include_enterprise_slug` option in GHE. This field should be set to the slug of your enterprise if this is enabled. If this is not enabled, then this field must be left empty. This field cannot be specified if `enterprise_server_host` is specified. See https://docs.github.com/en/enterprise-cloud@latest/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#customizing-the-issuer-value-for-an-enterprise for more information about customized issuer values. type: string type: object gitlab: @@ -277,23 +277,35 @@ spec: conditions: description: Conditions represent the latest available observations of an object's state 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 }" + description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}" properties: lastTransitionTime: - description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: - description: message is a human readable message indicating details about the transition. This may be an empty string. + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. maxLength: 32768 type: string observedGeneration: - description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. format: int64 minimum: 0.0 type: integer reason: - description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ @@ -306,7 +318,12 @@ spec: - Unknown type: string type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/crd-catalog/gravitational/teleport/resources.teleport.dev/v2/teleportsamlconnectors.yaml b/crd-catalog/gravitational/teleport/resources.teleport.dev/v2/teleportsamlconnectors.yaml index d3a51c3fc..5a97b3655 100644 --- a/crd-catalog/gravitational/teleport/resources.teleport.dev/v2/teleportsamlconnectors.yaml +++ b/crd-catalog/gravitational/teleport/resources.teleport.dev/v2/teleportsamlconnectors.yaml @@ -110,23 +110,35 @@ spec: conditions: description: Conditions represent the latest available observations of an object's state 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 }" + description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}" properties: lastTransitionTime: - description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: - description: message is a human readable message indicating details about the transition. This may be an empty string. + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. maxLength: 32768 type: string observedGeneration: - description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. format: int64 minimum: 0.0 type: integer reason: - description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ @@ -139,7 +151,12 @@ spec: - Unknown type: string type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/crd-catalog/gravitational/teleport/resources.teleport.dev/v2/teleportusers.yaml b/crd-catalog/gravitational/teleport/resources.teleport.dev/v2/teleportusers.yaml index 7ed3614d5..ce934ee71 100644 --- a/crd-catalog/gravitational/teleport/resources.teleport.dev/v2/teleportusers.yaml +++ b/crd-catalog/gravitational/teleport/resources.teleport.dev/v2/teleportusers.yaml @@ -92,23 +92,35 @@ spec: conditions: description: Conditions represent the latest available observations of an object's state 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 }" + description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}" properties: lastTransitionTime: - description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: - description: message is a human readable message indicating details about the transition. This may be an empty string. + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. maxLength: 32768 type: string observedGeneration: - description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. format: int64 minimum: 0.0 type: integer reason: - description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ @@ -121,7 +133,12 @@ spec: - Unknown type: string type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/crd-catalog/gravitational/teleport/resources.teleport.dev/v3/teleportgithubconnectors.yaml b/crd-catalog/gravitational/teleport/resources.teleport.dev/v3/teleportgithubconnectors.yaml index 1128b518b..82b61072f 100644 --- a/crd-catalog/gravitational/teleport/resources.teleport.dev/v3/teleportgithubconnectors.yaml +++ b/crd-catalog/gravitational/teleport/resources.teleport.dev/v3/teleportgithubconnectors.yaml @@ -73,23 +73,35 @@ spec: conditions: description: Conditions represent the latest available observations of an object's state 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 }" + description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}" properties: lastTransitionTime: - description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: - description: message is a human readable message indicating details about the transition. This may be an empty string. + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. maxLength: 32768 type: string observedGeneration: - description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. format: int64 minimum: 0.0 type: integer reason: - description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ @@ -102,7 +114,12 @@ spec: - Unknown type: string type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/crd-catalog/gravitational/teleport/resources.teleport.dev/v3/teleportoidcconnectors.yaml b/crd-catalog/gravitational/teleport/resources.teleport.dev/v3/teleportoidcconnectors.yaml index 1266e9425..a8f0dc192 100644 --- a/crd-catalog/gravitational/teleport/resources.teleport.dev/v3/teleportoidcconnectors.yaml +++ b/crd-catalog/gravitational/teleport/resources.teleport.dev/v3/teleportoidcconnectors.yaml @@ -106,23 +106,35 @@ spec: conditions: description: Conditions represent the latest available observations of an object's state 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 }" + description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}" properties: lastTransitionTime: - description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: - description: message is a human readable message indicating details about the transition. This may be an empty string. + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. maxLength: 32768 type: string observedGeneration: - description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. format: int64 minimum: 0.0 type: integer reason: - description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ @@ -135,7 +147,12 @@ spec: - Unknown type: string type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/crd-catalog/gravitational/teleport/resources.teleport.dev/v5/teleportroles.yaml b/crd-catalog/gravitational/teleport/resources.teleport.dev/v5/teleportroles.yaml index 663c54473..3cd424cf4 100644 --- a/crd-catalog/gravitational/teleport/resources.teleport.dev/v5/teleportroles.yaml +++ b/crd-catalog/gravitational/teleport/resources.teleport.dev/v5/teleportroles.yaml @@ -933,23 +933,35 @@ spec: conditions: description: Conditions represent the latest available observations of an object's state 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 }" + description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}" properties: lastTransitionTime: - description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: - description: message is a human readable message indicating details about the transition. This may be an empty string. + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. maxLength: 32768 type: string observedGeneration: - description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. format: int64 minimum: 0.0 type: integer reason: - description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ @@ -962,7 +974,12 @@ spec: - Unknown type: string type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/crd-catalog/gravitational/teleport/resources.teleport.dev/v6/teleportroles.yaml b/crd-catalog/gravitational/teleport/resources.teleport.dev/v6/teleportroles.yaml index 393ab85c0..12ec571f5 100644 --- a/crd-catalog/gravitational/teleport/resources.teleport.dev/v6/teleportroles.yaml +++ b/crd-catalog/gravitational/teleport/resources.teleport.dev/v6/teleportroles.yaml @@ -933,23 +933,35 @@ spec: conditions: description: Conditions represent the latest available observations of an object's state 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 }" + description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}" properties: lastTransitionTime: - description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: - description: message is a human readable message indicating details about the transition. This may be an empty string. + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. maxLength: 32768 type: string observedGeneration: - description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. format: int64 minimum: 0.0 type: integer reason: - description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ @@ -962,7 +974,12 @@ spec: - Unknown type: string type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/crd-catalog/kedacore/keda/keda.sh/v1alpha1/clustertriggerauthentications.yaml b/crd-catalog/kedacore/keda/keda.sh/v1alpha1/clustertriggerauthentications.yaml index efa7e79fd..3db8bb65c 100644 --- a/crd-catalog/kedacore/keda/keda.sh/v1alpha1/clustertriggerauthentications.yaml +++ b/crd-catalog/kedacore/keda/keda.sh/v1alpha1/clustertriggerauthentications.yaml @@ -53,6 +53,123 @@ spec: spec: description: TriggerAuthenticationSpec defines the various ways to authenticate properties: + awsSecretManager: + description: AwsSecretManager is used to authenticate using AwsSecretManager + properties: + credentials: + properties: + accessKey: + properties: + valueFrom: + properties: + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + - name + type: object + required: + - secretKeyRef + type: object + required: + - valueFrom + type: object + accessSecretKey: + properties: + valueFrom: + properties: + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + - name + type: object + required: + - secretKeyRef + type: object + required: + - valueFrom + type: object + accessToken: + properties: + valueFrom: + properties: + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + - name + type: object + required: + - secretKeyRef + type: object + required: + - valueFrom + type: object + required: + - accessKey + - accessSecretKey + type: object + podIdentity: + description: AuthPodIdentity allows users to select the platform native identity mechanism + properties: + identityId: + type: string + identityOwner: + description: IdentityOwner configures which identity has to be used during auto discovery, keda or the scaled workload. Mutually exclusive with roleArn + enum: + - keda + - workload + type: string + provider: + description: PodIdentityProvider contains the list of providers + enum: + - azure + - azure-workload + - gcp + - aws + - aws-eks + - aws-kiam + type: string + roleArn: + description: RoleArn sets the AWS RoleArn to be used. Mutually exclusive with IdentityOwner + type: string + required: + - provider + type: object + region: + type: string + secrets: + items: + properties: + name: + type: string + parameter: + type: string + versionId: + type: string + versionStage: + type: string + required: + - name + - parameter + type: object + type: array + required: + - secrets + type: object azureKeyVault: description: AzureKeyVault is used to authenticate using Azure Key Vault properties: @@ -176,6 +293,77 @@ spec: - parameter type: object type: array + gcpSecretManager: + properties: + credentials: + properties: + clientSecret: + properties: + valueFrom: + properties: + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + - name + type: object + required: + - secretKeyRef + type: object + required: + - valueFrom + type: object + required: + - clientSecret + type: object + podIdentity: + description: AuthPodIdentity allows users to select the platform native identity mechanism + properties: + identityId: + type: string + identityOwner: + description: IdentityOwner configures which identity has to be used during auto discovery, keda or the scaled workload. Mutually exclusive with roleArn + enum: + - keda + - workload + type: string + provider: + description: PodIdentityProvider contains the list of providers + enum: + - azure + - azure-workload + - gcp + - aws + - aws-eks + - aws-kiam + type: string + roleArn: + description: RoleArn sets the AWS RoleArn to be used. Mutually exclusive with IdentityOwner + type: string + required: + - provider + type: object + secrets: + items: + properties: + id: + type: string + parameter: + type: string + version: + type: string + required: + - id + - parameter + type: object + type: array + required: + - secrets + type: object hashiCorpVault: description: HashiCorpVault is used to authenticate using Hashicorp Vault properties: diff --git a/crd-catalog/kedacore/keda/keda.sh/v1alpha1/triggerauthentications.yaml b/crd-catalog/kedacore/keda/keda.sh/v1alpha1/triggerauthentications.yaml index 8b656fb84..854e4e40b 100644 --- a/crd-catalog/kedacore/keda/keda.sh/v1alpha1/triggerauthentications.yaml +++ b/crd-catalog/kedacore/keda/keda.sh/v1alpha1/triggerauthentications.yaml @@ -53,6 +53,123 @@ spec: spec: description: TriggerAuthenticationSpec defines the various ways to authenticate properties: + awsSecretManager: + description: AwsSecretManager is used to authenticate using AwsSecretManager + properties: + credentials: + properties: + accessKey: + properties: + valueFrom: + properties: + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + - name + type: object + required: + - secretKeyRef + type: object + required: + - valueFrom + type: object + accessSecretKey: + properties: + valueFrom: + properties: + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + - name + type: object + required: + - secretKeyRef + type: object + required: + - valueFrom + type: object + accessToken: + properties: + valueFrom: + properties: + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + - name + type: object + required: + - secretKeyRef + type: object + required: + - valueFrom + type: object + required: + - accessKey + - accessSecretKey + type: object + podIdentity: + description: AuthPodIdentity allows users to select the platform native identity mechanism + properties: + identityId: + type: string + identityOwner: + description: IdentityOwner configures which identity has to be used during auto discovery, keda or the scaled workload. Mutually exclusive with roleArn + enum: + - keda + - workload + type: string + provider: + description: PodIdentityProvider contains the list of providers + enum: + - azure + - azure-workload + - gcp + - aws + - aws-eks + - aws-kiam + type: string + roleArn: + description: RoleArn sets the AWS RoleArn to be used. Mutually exclusive with IdentityOwner + type: string + required: + - provider + type: object + region: + type: string + secrets: + items: + properties: + name: + type: string + parameter: + type: string + versionId: + type: string + versionStage: + type: string + required: + - name + - parameter + type: object + type: array + required: + - secrets + type: object azureKeyVault: description: AzureKeyVault is used to authenticate using Azure Key Vault properties: @@ -176,6 +293,77 @@ spec: - parameter type: object type: array + gcpSecretManager: + properties: + credentials: + properties: + clientSecret: + properties: + valueFrom: + properties: + secretKeyRef: + properties: + key: + type: string + name: + type: string + required: + - key + - name + type: object + required: + - secretKeyRef + type: object + required: + - valueFrom + type: object + required: + - clientSecret + type: object + podIdentity: + description: AuthPodIdentity allows users to select the platform native identity mechanism + properties: + identityId: + type: string + identityOwner: + description: IdentityOwner configures which identity has to be used during auto discovery, keda or the scaled workload. Mutually exclusive with roleArn + enum: + - keda + - workload + type: string + provider: + description: PodIdentityProvider contains the list of providers + enum: + - azure + - azure-workload + - gcp + - aws + - aws-eks + - aws-kiam + type: string + roleArn: + description: RoleArn sets the AWS RoleArn to be used. Mutually exclusive with IdentityOwner + type: string + required: + - provider + type: object + secrets: + items: + properties: + id: + type: string + parameter: + type: string + version: + type: string + required: + - id + - parameter + type: object + type: array + required: + - secrets + type: object hashiCorpVault: description: HashiCorpVault is used to authenticate using Hashicorp Vault properties: diff --git a/crd-catalog/kiali/kiali-operator/kiali.io/v1alpha1/kialis.yaml b/crd-catalog/kiali/kiali-operator/kiali.io/v1alpha1/kialis.yaml index 0c8ead4fc..2e64e21c4 100644 --- a/crd-catalog/kiali/kiali-operator/kiali.io/v1alpha1/kialis.yaml +++ b/crd-catalog/kiali/kiali-operator/kiali.io/v1alpha1/kialis.yaml @@ -164,6 +164,50 @@ spec: - header type: string type: object + clustering: + description: Multi-cluster related features. + properties: + autodetect_secrets: + description: Settings to allow cluster secrets to be auto-detected. Secrets must exist in the Kiali deployment namespace. + properties: + enabled: + description: If true then remote cluster secrets will be autodetected during the installation of the Kiali Server Deployment. Any remote cluster secrets found in the Kiali deployment namespace will be mounted to the Kiali Server's file system. If false, you can still manually specify the remote cluster secret information in the 'clusters' setting if you wish to utilize multicluster features. + type: boolean + label: + description: The name and value of a label that exists on all remote cluster secrets. Default is 'kiali.io/multiCluster=true'. + type: string + type: object + clusters: + description: A list of clusters that the Kiali Server can access. You need to specify the remote clusters here if 'autodetect_secrets.enabled' is false. + items: + properties: + name: + description: The name of the cluster. + type: string + secret_name: + description: The name of the secret that contains the credentials necessary to connect to the remote cluster. This secret must exist in the Kiali deployment namespace. If a secret name is not provided then it's assumed that the cluster is inaccessible. + type: string + type: object + type: array + kiali_urls: + description: A map between cluster name, instance name and namespace to a Kiali URL. Will be used showing the Mesh page's Kiali URLs. The Kiali service's 'kiali.io/external-url' annotation will be overridden when this property is set. + items: + properties: + cluster_name: + description: The name of the cluster. + type: string + instance_name: + description: The instance name of this Kiali installation. This should be the value used in `deployment.instance_name` for Kiali resource name. + type: string + namespace: + description: The namespace into which Kiali is installed. + type: string + url: + description: The URL of Kiali in the cluster. + type: string + type: object + type: array + type: object custom_dashboards: description: | A list of user-defined custom monitoring dashboards that you can use to generate metrics charts @@ -1008,7 +1052,7 @@ spec: description: The name of the cluster. type: string secret_name: - description: The name of the secret that contains the credentials necessary to connect to the remote cluster. This secret must exist in the Kiali deployment namespace. + description: The name of the secret that contains the credentials necessary to connect to the remote cluster. This secret must exist in the Kiali deployment namespace. If a secret name is not provided then it's assumed that the cluster is inaccessible. type: string type: object type: array diff --git a/crd-catalog/kubeedge/kubeedge/apps.kubeedge.io/v1alpha1/edgeapplications.yaml b/crd-catalog/kubeedge/kubeedge/apps.kubeedge.io/v1alpha1/edgeapplications.yaml index 02fcebcc0..45b1809f3 100644 --- a/crd-catalog/kubeedge/kubeedge/apps.kubeedge.io/v1alpha1/edgeapplications.yaml +++ b/crd-catalog/kubeedge/kubeedge/apps.kubeedge.io/v1alpha1/edgeapplications.yaml @@ -45,6 +45,154 @@ spec: overriders: description: Overriders represents the override rules that would apply on workload. properties: + argsOverriders: + description: ArgsOverriders represents the rules dedicated to handling container args + items: + description: CommandArgsOverrider represents the rules dedicated to handling command/args overrides. + properties: + containerName: + description: The name of container + type: string + operator: + description: Operator represents the operator which will apply on the command/args. + enum: + - add + - remove + type: string + value: + description: Value to be applied to command/args. Items in Value which will be appended after command/args when Operator is 'add'. Items in Value which match in command/args will be deleted when Operator is 'remove'. If Value is empty, then the command/args will remain the same. + items: + type: string + type: array + required: + - containerName + - operator + type: object + type: array + commandOverriders: + description: CommandOverriders represents the rules dedicated to handling container command + items: + description: CommandArgsOverrider represents the rules dedicated to handling command/args overrides. + properties: + containerName: + description: The name of container + type: string + operator: + description: Operator represents the operator which will apply on the command/args. + enum: + - add + - remove + type: string + value: + description: Value to be applied to command/args. Items in Value which will be appended after command/args when Operator is 'add'. Items in Value which match in command/args will be deleted when Operator is 'remove'. If Value is empty, then the command/args will remain the same. + items: + type: string + type: array + required: + - containerName + - operator + type: object + type: array + envOverrides: + description: EnvOverrides will override the env field of the container + items: + description: EnvOverrider represents the rules dedicated to handling env overrides. + properties: + containerName: + description: The name of container + type: string + operator: + description: Operator represents the operator which will apply on the env. + enum: + - add + - remove + - replace + type: string + value: + description: Value to be applied to env. Must not be empty when operator is 'add' or 'replace'. When the operator is 'remove', the matched value in env will be deleted and only the name of the value will be matched. If Value is empty, then the env will remain the same. + 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 + 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 + 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 + 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 + type: object + required: + - name + type: object + type: array + required: + - containerName + - operator + type: object + type: array imageOverriders: description: ImageOverriders represents the rules dedicated to handling image overrides. items: @@ -84,6 +232,55 @@ spec: replicas: description: Replicas will override the replicas field of deployment type: integer + resourcesOverrides: + description: ResourcesOverrides will override the resources field of the container + items: + description: ResourcesOverrider represents the rules dedicated to handling resources overrides. + properties: + containerName: + description: The name of container + type: string + value: + description: Value to be applied to resources. Must not be empty + 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." + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + type: object + type: object + required: + - containerName + type: object + type: array type: object required: - name diff --git a/crd-catalog/kubeedge/kubeedge/operations.kubeedge.io/v1alpha1/nodeupgradejobs.yaml b/crd-catalog/kubeedge/kubeedge/operations.kubeedge.io/v1alpha1/nodeupgradejobs.yaml index eb0294361..3c016c896 100644 --- a/crd-catalog/kubeedge/kubeedge/operations.kubeedge.io/v1alpha1/nodeupgradejobs.yaml +++ b/crd-catalog/kubeedge/kubeedge/operations.kubeedge.io/v1alpha1/nodeupgradejobs.yaml @@ -29,10 +29,18 @@ spec: spec: description: Specification of the desired behavior of NodeUpgradeJob. properties: + checkItems: + description: CheckItems specifies the items need to be checked before the task is executed. The default CheckItems value is nil. + items: + type: string + type: array concurrency: description: Concurrency specifies the max number of edge nodes that can be upgraded at the same time. The default Concurrency value is 1. format: int32 type: integer + failureTolerate: + description: FailureTolerate specifies the task tolerance failure ratio. The default FailureTolerate value is 0.1. + type: string image: description: 'Image specifies a container image name, the image contains: keadm and edgecore. keadm is used as upgradetool, to install the new version of edgecore. The image name consists of registry hostname and repository name, if it includes the tag or digest, the tag or digest will be overwritten by Version field above. If the registry hostname is empty, docker.io will be used as default. The default image name is: kubeedge/installation-package.' type: string @@ -75,63 +83,58 @@ spec: description: TimeoutSeconds limits the duration of the node upgrade job. Default to 300. If set to 0, we'll use the default value 300. format: int32 type: integer - upgradeTool: - description: UpgradeTool is a request to decide use which upgrade tool. If it is empty, the upgrade job simply use default upgrade tool keadm to do upgrade operation. - type: string version: type: string type: object status: description: Most recently observed status of the NodeUpgradeJob. properties: - state: - description: 'State represents for the state phase of the NodeUpgradeJob. There are three possible state values: "", upgrading and completed.' - enum: - - upgrading - - completed + action: + description: 'Action represents for the action of the ImagePrePullJob. There are two possible action values: Success, Failure.' + type: string + currentVersion: + description: CurrentVersion represents for the current status of the EdgeCore. type: string - status: + event: + description: 'Event represents for the event of the ImagePrePullJob. There are six possible event values: Init, Check, BackUp, Upgrade, TimeOut, Rollback.' + type: string + historicVersion: + description: HistoricVersion represents for the historic status of the EdgeCore. + type: string + nodeStatus: description: Status contains upgrade Status for each edge node. items: - description: UpgradeStatus stores the status of Upgrade for each edge node. + description: TaskStatus stores the status of Upgrade for each edge node. properties: - history: - description: History is the last upgrade result of the edge node. - properties: - fromVersion: - description: FromVersion is the version which the edge node is upgraded from. - type: string - historyID: - description: HistoryID is to uniquely identify an Upgrade Operation. - type: string - reason: - description: Reason is the error reason of Upgrade failure. If the upgrade is successful, this reason is an empty string. - type: string - result: - description: Result represents the result of upgrade. - enum: - - upgrade_success - - upgrade_failed_rollback_success - - upgrade_failed_rollback_failed - type: string - toVersion: - description: ToVersion is the version which the edge node is upgraded to. - type: string - upgradeTime: - description: UpgradeTime is the time of this Upgrade. - type: string - type: object + action: + description: 'Action represents for the action of the ImagePrePullJob. There are three possible action values: Success, Failure, TimeOut.' + type: string + event: + description: 'Event represents for the event of the ImagePrePullJob. There are three possible event values: Init, Check, Pull.' + type: string nodeName: description: NodeName is the name of edge node. type: string + reason: + description: Reason represents for the reason of the ImagePrePullJob. + type: string state: - description: 'State represents for the upgrade state phase of the edge node. There are three possible state values: "", upgrading and completed.' - enum: - - upgrading - - completed + description: 'State represents for the upgrade state phase of the edge node. There are several possible state values: "", Upgrading, BackingUp, RollingBack and Checking.' + type: string + time: + description: Time represents for the running time of the ImagePrePullJob. type: string type: object type: array + reason: + description: Reason represents for the reason of the ImagePrePullJob. + type: string + state: + description: 'State represents for the state phase of the NodeUpgradeJob. There are several possible state values: "", Upgrading, BackingUp, RollingBack and Checking.' + type: string + time: + description: Time represents for the running time of the ImagePrePullJob. + type: string type: object type: object served: true diff --git a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/bootstrapproviders.yaml b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/bootstrapproviders.yaml index e74c2ee33..6cb4ab13f 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/bootstrapproviders.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/bootstrapproviders.yaml @@ -10,6 +10,8 @@ spec: kind: BootstrapProvider listKind: BootstrapProviderList plural: bootstrapproviders + shortNames: + - cabp singular: bootstrapprovider scope: Namespaced versions: diff --git a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/controlplaneproviders.yaml b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/controlplaneproviders.yaml index a1bd55a0a..a1a5e83d8 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/controlplaneproviders.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/controlplaneproviders.yaml @@ -10,6 +10,8 @@ spec: kind: ControlPlaneProvider listKind: ControlPlaneProviderList plural: controlplaneproviders + shortNames: + - cacpp singular: controlplaneprovider scope: Namespaced versions: diff --git a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/coreproviders.yaml b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/coreproviders.yaml index eb8abbd78..34b85bd46 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/coreproviders.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/coreproviders.yaml @@ -10,6 +10,8 @@ spec: kind: CoreProvider listKind: CoreProviderList plural: coreproviders + shortNames: + - cacp singular: coreprovider scope: Namespaced versions: diff --git a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/infrastructureproviders.yaml b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/infrastructureproviders.yaml index fb6ed39ca..51347d40e 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/infrastructureproviders.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha1/infrastructureproviders.yaml @@ -10,6 +10,8 @@ spec: kind: InfrastructureProvider listKind: InfrastructureProviderList plural: infrastructureproviders + shortNames: + - caip singular: infrastructureprovider scope: Namespaced versions: diff --git a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/addonproviders.yaml b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/addonproviders.yaml index e34f15ee7..bf67c1c5d 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/addonproviders.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/addonproviders.yaml @@ -10,6 +10,8 @@ spec: kind: AddonProvider listKind: AddonProviderList plural: addonproviders + shortNames: + - caap singular: addonprovider scope: Namespaced versions: diff --git a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/bootstrapproviders.yaml b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/bootstrapproviders.yaml index cb5339e35..c4bba49bf 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/bootstrapproviders.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/bootstrapproviders.yaml @@ -10,6 +10,8 @@ spec: kind: BootstrapProvider listKind: BootstrapProviderList plural: bootstrapproviders + shortNames: + - cabp singular: bootstrapprovider scope: Namespaced versions: diff --git a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/controlplaneproviders.yaml b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/controlplaneproviders.yaml index fb4bd3425..4f9ebaa09 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/controlplaneproviders.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/controlplaneproviders.yaml @@ -10,6 +10,8 @@ spec: kind: ControlPlaneProvider listKind: ControlPlaneProviderList plural: controlplaneproviders + shortNames: + - cacpp singular: controlplaneprovider scope: Namespaced versions: diff --git a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/coreproviders.yaml b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/coreproviders.yaml index 5cb099484..411470a81 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/coreproviders.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/coreproviders.yaml @@ -10,6 +10,8 @@ spec: kind: CoreProvider listKind: CoreProviderList plural: coreproviders + shortNames: + - cacp singular: coreprovider scope: Namespaced versions: diff --git a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/infrastructureproviders.yaml b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/infrastructureproviders.yaml index 6eef62396..90ad18c80 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/infrastructureproviders.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api-operator/operator.cluster.x-k8s.io/v1alpha2/infrastructureproviders.yaml @@ -10,6 +10,8 @@ spec: kind: InfrastructureProvider listKind: InfrastructureProviderList plural: infrastructureproviders + shortNames: + - caip singular: infrastructureprovider scope: Namespaced versions: diff --git a/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1alpha4/clusterresourcesetbindings.yaml b/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1alpha4/clusterresourcesetbindings.yaml index 109ba825c..409b24a83 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1alpha4/clusterresourcesetbindings.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1alpha4/clusterresourcesetbindings.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: clusterresourcesetbindings.addons.cluster.x-k8s.io spec: group: addons.cluster.x-k8s.io @@ -24,13 +24,26 @@ spec: name: v1alpha4 schema: openAPIV3Schema: - description: "ClusterResourceSetBinding lists all matching ClusterResourceSets with the cluster it belongs to. \n Deprecated: This type will be removed in one of the next releases." + description: |- + ClusterResourceSetBinding lists all matching ClusterResourceSets with the cluster it belongs to. + + + Deprecated: This type will be removed in one of the next releases. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -54,7 +67,9 @@ spec: description: Applied is to track if a resource is applied to the cluster or not. type: boolean hash: - description: Hash is the hash of a resource's data. This can be used to decide if a resource is changed. For "ApplyOnce" ClusterResourceSet.spec.strategy, this is no-op as that strategy does not act on change. + description: |- + Hash is the hash of a resource's data. This can be used to decide if a resource is changed. + For "ApplyOnce" ClusterResourceSet.spec.strategy, this is no-op as that strategy does not act on change. type: string kind: description: 'Kind of the resource. Supported kinds are: Secrets and ConfigMaps.' diff --git a/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1alpha4/clusterresourcesets.yaml b/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1alpha4/clusterresourcesets.yaml index 7ac652df3..6fa075f58 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1alpha4/clusterresourcesets.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1alpha4/clusterresourcesets.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: clusterresourcesets.addons.cluster.x-k8s.io spec: group: addons.cluster.x-k8s.io @@ -24,13 +24,26 @@ spec: name: v1alpha4 schema: openAPIV3Schema: - description: "ClusterResourceSet is the Schema for the clusterresourcesets API. \n Deprecated: This type will be removed in one of the next releases." + description: |- + ClusterResourceSet is the Schema for the clusterresourcesets API. + + + Deprecated: This type will be removed in one of the next releases. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -38,21 +51,33 @@ spec: description: ClusterResourceSetSpec defines the desired state of ClusterResourceSet. properties: clusterSelector: - description: Label selector for Clusters. The Clusters that are selected by this will be the ones affected by this ClusterResourceSet. It must match the Cluster labels. This field is immutable. Label selector cannot be empty. + description: |- + Label selector for Clusters. The Clusters that are + selected by this will be the ones affected by this ClusterResourceSet. + It must match the Cluster labels. This field is immutable. + Label selector cannot be empty. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -64,7 +89,10 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic @@ -105,23 +133,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - status diff --git a/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1beta1/clusterresourcesetbindings.yaml b/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1beta1/clusterresourcesetbindings.yaml index c53baf01c..2f7af5785 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1beta1/clusterresourcesetbindings.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1beta1/clusterresourcesetbindings.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: clusterresourcesetbindings.addons.cluster.x-k8s.io spec: group: addons.cluster.x-k8s.io @@ -26,10 +26,19 @@ spec: description: ClusterResourceSetBinding lists all matching ClusterResourceSets with the cluster it belongs to. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -53,7 +62,9 @@ spec: description: Applied is to track if a resource is applied to the cluster or not. type: boolean hash: - description: Hash is the hash of a resource's data. This can be used to decide if a resource is changed. For "ApplyOnce" ClusterResourceSet.spec.strategy, this is no-op as that strategy does not act on change. + description: |- + Hash is the hash of a resource's data. This can be used to decide if a resource is changed. + For "ApplyOnce" ClusterResourceSet.spec.strategy, this is no-op as that strategy does not act on change. type: string kind: description: 'Kind of the resource. Supported kinds are: Secrets and ConfigMaps.' @@ -80,7 +91,9 @@ spec: type: object type: array clusterName: - description: 'ClusterName is the name of the Cluster this binding applies to. Note: this field mandatory in v1beta2.' + description: |- + ClusterName is the name of the Cluster this binding applies to. + Note: this field mandatory in v1beta2. type: string type: object type: object diff --git a/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1beta1/clusterresourcesets.yaml b/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1beta1/clusterresourcesets.yaml index 17525a579..f7290dc09 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1beta1/clusterresourcesets.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/addons.cluster.x-k8s.io/v1beta1/clusterresourcesets.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: clusterresourcesets.addons.cluster.x-k8s.io spec: group: addons.cluster.x-k8s.io @@ -26,10 +26,19 @@ spec: description: ClusterResourceSet is the Schema for the clusterresourcesets API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -37,21 +46,33 @@ spec: description: ClusterResourceSetSpec defines the desired state of ClusterResourceSet. properties: clusterSelector: - description: Label selector for Clusters. The Clusters that are selected by this will be the ones affected by this ClusterResourceSet. It must match the Cluster labels. This field is immutable. Label selector cannot be empty. + description: |- + Label selector for Clusters. The Clusters that are + selected by this will be the ones affected by this ClusterResourceSet. + It must match the Cluster labels. This field is immutable. + Label selector cannot be empty. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -63,7 +84,10 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic @@ -105,23 +129,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - lastTransitionTime diff --git a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/clusterclasses.yaml b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/clusterclasses.yaml index 16a5704b5..319863aca 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/clusterclasses.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/clusterclasses.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: clusterclasses.cluster.x-k8s.io spec: group: cluster.x-k8s.io @@ -26,13 +26,26 @@ spec: name: v1alpha4 schema: openAPIV3Schema: - description: "ClusterClass is a template which can be used to create managed topologies. \n Deprecated: This type will be removed in one of the next releases." + description: |- + ClusterClass is a template which can be used to create managed topologies. + + + Deprecated: This type will be removed in one of the next releases. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -40,34 +53,62 @@ spec: description: ClusterClassSpec describes the desired state of the ClusterClass. properties: controlPlane: - description: ControlPlane is a reference to a local struct that holds the details for provisioning the Control Plane for the Cluster. + description: |- + ControlPlane is a reference to a local struct that holds the details + for provisioning the Control Plane for the Cluster. properties: machineInfrastructure: - description: "MachineTemplate defines the metadata and infrastructure information for control plane machines. \n This field is supported if and only if the control plane provider template referenced above is Machine based and supports setting replicas." + description: |- + MachineTemplate defines the metadata and infrastructure information + for control plane machines. + + + This field is supported if and only if the control plane provider template + referenced above is Machine based and supports setting replicas. properties: ref: - description: Ref is a required reference to a custom resource offered by a provider. + description: |- + Ref is a required reference to a custom resource + offered by a provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -75,42 +116,76 @@ spec: - ref type: object metadata: - description: "Metadata is the metadata applied to the machines of the ControlPlane. At runtime this metadata is merged with the corresponding metadata from the topology. \n This field is supported if and only if the control plane provider template referenced is Machine based." + description: |- + Metadata is the metadata applied to the machines of the ControlPlane. + At runtime this metadata is merged with the corresponding metadata from the topology. + + + This field is supported if and only if the control plane provider template + referenced is Machine based. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object ref: - description: Ref is a required reference to a custom resource offered by a provider. + description: |- + Ref is a required reference to a custom resource + offered by a provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -118,31 +193,56 @@ spec: - ref type: object infrastructure: - description: Infrastructure is a reference to a provider-specific template that holds the details for provisioning infrastructure specific cluster for the underlying provider. The underlying provider is responsible for the implementation of the template to an infrastructure cluster. + description: |- + Infrastructure is a reference to a provider-specific template that holds + the details for provisioning infrastructure specific cluster + for the underlying provider. + The underlying provider is responsible for the implementation + of the template to an infrastructure cluster. properties: ref: - description: Ref is a required reference to a custom resource offered by a provider. + description: |- + Ref is a required reference to a custom resource + offered by a provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -150,45 +250,79 @@ spec: - ref type: object workers: - description: Workers describes the worker nodes for the cluster. It is a collection of node types which can be used to create the worker nodes of the cluster. + description: |- + Workers describes the worker nodes for the cluster. + It is a collection of node types which can be used to create + the worker nodes of the cluster. properties: machineDeployments: - description: MachineDeployments is a list of machine deployment classes that can be used to create a set of worker nodes. + description: |- + MachineDeployments is a list of machine deployment classes that can be used to create + a set of worker nodes. items: - description: MachineDeploymentClass serves as a template to define a set of worker nodes of the cluster provisioned using the `ClusterClass`. + description: |- + MachineDeploymentClass serves as a template to define a set of worker nodes of the cluster + provisioned using the `ClusterClass`. properties: class: - description: Class denotes a type of worker node present in the cluster, this name MUST be unique within a ClusterClass and can be referenced in the Cluster to create a managed MachineDeployment. + description: |- + Class denotes a type of worker node present in the cluster, + this name MUST be unique within a ClusterClass and can be referenced + in the Cluster to create a managed MachineDeployment. type: string template: - description: Template is a local struct containing a collection of templates for creation of MachineDeployment objects representing a set of worker nodes. + description: |- + Template is a local struct containing a collection of templates for creation of + MachineDeployment objects representing a set of worker nodes. properties: bootstrap: - description: Bootstrap contains the bootstrap template reference to be used for the creation of worker Machines. + description: |- + Bootstrap contains the bootstrap template reference to be used + for the creation of worker Machines. properties: ref: - description: Ref is a required reference to a custom resource offered by a provider. + description: |- + Ref is a required reference to a custom resource + offered by a provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -196,31 +330,53 @@ spec: - ref type: object infrastructure: - description: Infrastructure contains the infrastructure template reference to be used for the creation of worker Machines. + description: |- + Infrastructure contains the infrastructure template reference to be used + for the creation of worker Machines. properties: ref: - description: Ref is a required reference to a custom resource offered by a provider. + description: |- + Ref is a required reference to a custom resource + offered by a provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -228,17 +384,27 @@ spec: - ref type: object metadata: - description: Metadata is the metadata applied to the machines of the MachineDeployment. At runtime this metadata is merged with the corresponding metadata from the topology. + description: |- + Metadata is the metadata applied to the machines of the MachineDeployment. + At runtime this metadata is merged with the corresponding metadata from the topology. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object required: diff --git a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/clusters.yaml b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/clusters.yaml index 094cffd5d..99f8c71e9 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/clusters.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/clusters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: clusters.cluster.x-k8s.io spec: group: cluster.x-k8s.io @@ -30,13 +30,26 @@ spec: name: v1alpha4 schema: openAPIV3Schema: - description: "Cluster is the Schema for the clusters API. \n Deprecated: This type will be removed in one of the next releases." + description: |- + Cluster is the Schema for the clusters API. + + + Deprecated: This type will be removed in one of the next releases. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -47,7 +60,9 @@ spec: description: Cluster network configuration. properties: apiServerPort: - description: APIServerPort specifies the port the API Server should bind to. Defaults to 6443. + description: |- + APIServerPort specifies the port the API Server should bind to. + Defaults to 6443. format: int32 type: integer pods: @@ -89,54 +104,94 @@ spec: - port type: object controlPlaneRef: - description: ControlPlaneRef is an optional reference to a provider-specific resource that holds the details for provisioning the Control Plane for a Cluster. + description: |- + ControlPlaneRef is an optional reference to a provider-specific resource that holds + the details for provisioning the Control Plane for a Cluster. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic infrastructureRef: - description: InfrastructureRef is a reference to a provider-specific resource that holds the details for provisioning infrastructure for a cluster in said provider. + description: |- + InfrastructureRef is a reference to a provider-specific resource that holds the details + for provisioning infrastructure for a cluster in said provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -144,7 +199,11 @@ spec: description: Paused can be used to prevent controllers from processing the Cluster and all its associated objects. type: boolean topology: - description: 'This encapsulates the topology for the cluster. NOTE: It is required to enable the ClusterTopology feature gate flag to activate managed topologies support; this feature is highly experimental, and parts of it might still be not implemented.' + description: |- + This encapsulates the topology for the cluster. + NOTE: It is required to enable the ClusterTopology + feature gate flag to activate managed topologies support; + this feature is highly experimental, and parts of it might still be not implemented. properties: class: description: The name of the ClusterClass object to create the topology. @@ -153,61 +212,106 @@ spec: description: ControlPlane describes the cluster control plane. properties: metadata: - description: "Metadata is the metadata applied to the machines of the ControlPlane. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. \n This field is supported if and only if the control plane provider template referenced in the ClusterClass is Machine based." + description: |- + Metadata is the metadata applied to the machines of the ControlPlane. + At runtime this metadata is merged with the corresponding metadata from the ClusterClass. + + + This field is supported if and only if the control plane provider template + referenced in the ClusterClass is Machine based. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object replicas: - description: Replicas is the number of control plane nodes. If the value is nil, the ControlPlane object is created without the number of Replicas and it's assumed that the control plane controller does not implement support for this field. When specified against a control plane provider that lacks support for this field, this value will be ignored. + description: |- + Replicas is the number of control plane nodes. + If the value is nil, the ControlPlane object is created without the number of Replicas + and it's assumed that the control plane controller does not implement support for this field. + When specified against a control plane provider that lacks support for this field, this value will be ignored. format: int32 type: integer type: object rolloutAfter: - description: RolloutAfter performs a rollout of the entire cluster one component at a time, control plane first and then machine deployments. + description: |- + RolloutAfter performs a rollout of the entire cluster one component at a time, + control plane first and then machine deployments. format: date-time type: string version: description: The Kubernetes version of the cluster. type: string workers: - description: Workers encapsulates the different constructs that form the worker nodes for the cluster. + description: |- + Workers encapsulates the different constructs that form the worker nodes + for the cluster. properties: machineDeployments: description: MachineDeployments is a list of machine deployments in the cluster. items: - description: MachineDeploymentTopology specifies the different parameters for a set of worker nodes in the topology. This set of nodes is managed by a MachineDeployment object whose lifecycle is managed by the Cluster controller. + description: |- + MachineDeploymentTopology specifies the different parameters for a set of worker nodes in the topology. + This set of nodes is managed by a MachineDeployment object whose lifecycle is managed by the Cluster controller. properties: class: - description: Class is the name of the MachineDeploymentClass used to create the set of worker nodes. This should match one of the deployment classes defined in the ClusterClass object mentioned in the `Cluster.Spec.Class` field. + description: |- + Class is the name of the MachineDeploymentClass used to create the set of worker nodes. + This should match one of the deployment classes defined in the ClusterClass object + mentioned in the `Cluster.Spec.Class` field. type: string metadata: - description: Metadata is the metadata applied to the machines of the MachineDeployment. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. + description: |- + Metadata is the metadata applied to the machines of the MachineDeployment. + At runtime this metadata is merged with the corresponding metadata from the ClusterClass. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object name: - description: Name is the unique identifier for this MachineDeploymentTopology. The value is used with other unique identifiers to create a MachineDeployment's Name (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length, the values are hashed together. + description: |- + Name is the unique identifier for this MachineDeploymentTopology. + The value is used with other unique identifiers to create a MachineDeployment's Name + (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length, + the values are hashed together. type: string replicas: - description: Replicas is the number of worker nodes belonging to this set. If the value is nil, the MachineDeployment is created without the number of Replicas (defaulting to zero) and it's assumed that an external entity (like cluster autoscaler) is responsible for the management of this value. + description: |- + Replicas is the number of worker nodes belonging to this set. + If the value is nil, the MachineDeployment is created without the number of Replicas (defaulting to zero) + and it's assumed that an external entity (like cluster autoscaler) is responsible for the management + of this value. format: int32 type: integer required: @@ -230,23 +334,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - status @@ -258,7 +376,9 @@ spec: type: boolean failureDomains: additionalProperties: - description: FailureDomainSpec is the Schema for Cluster API failure domains. It allows controllers to understand how many failure domains a cluster can optionally span across. + description: |- + FailureDomainSpec is the Schema for Cluster API failure domains. + It allows controllers to understand how many failure domains a cluster can optionally span across. properties: attributes: additionalProperties: @@ -272,10 +392,15 @@ spec: description: FailureDomains is a slice of failure domain objects synced from the infrastructure provider. type: object failureMessage: - description: FailureMessage indicates that there is a fatal problem reconciling the state, and will be set to a descriptive error message. + description: |- + FailureMessage indicates that there is a fatal problem reconciling the + state, and will be set to a descriptive error message. type: string failureReason: - description: FailureReason indicates that there is a fatal problem reconciling the state, and will be set to a token value suitable for programmatic interpretation. + description: |- + FailureReason indicates that there is a fatal problem reconciling the + state, and will be set to a token value suitable for + programmatic interpretation. type: string infrastructureReady: description: InfrastructureReady is the state of the infrastructure provider. @@ -285,7 +410,9 @@ spec: format: int64 type: integer phase: - description: Phase represents the current phase of cluster actuation. E.g. Pending, Running, Terminating, Failed etc. + description: |- + Phase represents the current phase of cluster actuation. + E.g. Pending, Running, Terminating, Failed etc. type: string type: object type: object diff --git a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinedeployments.yaml b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinedeployments.yaml index 4c4a1dfeb..a0474f06c 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinedeployments.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinedeployments.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: machinedeployments.cluster.x-k8s.io spec: group: cluster.x-k8s.io @@ -50,13 +50,26 @@ spec: name: v1alpha4 schema: openAPIV3Schema: - description: "MachineDeployment is the Schema for the machinedeployments API. \n Deprecated: This type will be removed in one of the next releases." + description: |- + MachineDeployment is the Schema for the machinedeployments API. + + + Deprecated: This type will be removed in one of the next releases. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -68,41 +81,66 @@ spec: minLength: 1 type: string minReadySeconds: - description: Minimum number of seconds for which a newly created machine should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) + description: |- + Minimum number of seconds for which a newly created machine should + be ready. + Defaults to 0 (machine will be considered available as soon as it + is ready) format: int32 type: integer paused: description: Indicates that the deployment is paused. type: boolean progressDeadlineSeconds: - description: The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s. + description: |- + The maximum time in seconds for a deployment to make progress before it + is considered to be failed. The deployment controller will continue to + process failed deployments and a condition with a ProgressDeadlineExceeded + reason will be surfaced in the deployment status. Note that progress will + not be estimated during the time a deployment is paused. Defaults to 600s. format: int32 type: integer replicas: default: 1 - description: Number of desired machines. Defaults to 1. This is a pointer to distinguish between explicit zero and not specified. + description: |- + Number of desired machines. Defaults to 1. + This is a pointer to distinguish between explicit zero and not specified. format: int32 type: integer revisionHistoryLimit: - description: The number of old MachineSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. + description: |- + The number of old MachineSets to retain to allow rollback. + This is a pointer to distinguish between explicit zero and not specified. + Defaults to 1. format: int32 type: integer selector: - description: Label selector for machines. Existing MachineSets whose machines are selected by this will be the ones affected by this deployment. It must match the machine template's labels. + description: |- + Label selector for machines. Existing MachineSets whose machines are + selected by this will be the ones affected by this deployment. + It must match the machine template's labels. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -114,18 +152,28 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic strategy: - description: The deployment strategy to use to replace existing machines with new ones. + description: |- + The deployment strategy to use to replace existing machines with + new ones. properties: rollingUpdate: - description: Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. + description: |- + Rolling update config params. Present only if + MachineDeploymentStrategyType = RollingUpdate. properties: deletePolicy: - description: DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. Valid values are "Random, "Newest", "Oldest" When no value is supplied, the default DeletePolicy of MachineSet is used + description: |- + DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. + Valid values are "Random, "Newest", "Oldest" + When no value is supplied, the default DeletePolicy of MachineSet is used enum: - Random - Newest @@ -135,17 +183,44 @@ spec: anyOf: - type: integer - type: string - description: 'The maximum number of machines that can be scheduled above the desired number of machines. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 1. Example: when this is set to 30%, the new MachineSet can be scaled up immediately when the rolling update starts, such that the total number of old and new machines do not exceed 130% of desired machines. Once old machines have been killed, new MachineSet can be scaled up further, ensuring that total number of machines running at any time during the update is at most 130% of desired machines.' + description: |- + The maximum number of machines that can be scheduled above the + desired number of machines. + Value can be an absolute number (ex: 5) or a percentage of + desired machines (ex: 10%). + This can not be 0 if MaxUnavailable is 0. + Absolute number is calculated from percentage by rounding up. + Defaults to 1. + Example: when this is set to 30%, the new MachineSet can be scaled + up immediately when the rolling update starts, such that the total + number of old and new machines do not exceed 130% of desired + machines. Once old machines have been killed, new MachineSet can + be scaled up further, ensuring that total number of machines running + at any time during the update is at most 130% of desired machines. x-kubernetes-int-or-string: true maxUnavailable: anyOf: - type: integer - type: string - description: 'The maximum number of machines that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 0. Example: when this is set to 30%, the old MachineSet can be scaled down to 70% of desired machines immediately when the rolling update starts. Once new machines are ready, old MachineSet can be scaled down further, followed by scaling up the new MachineSet, ensuring that the total number of machines available at all times during the update is at least 70% of desired machines.' + description: |- + The maximum number of machines that can be unavailable during the update. + Value can be an absolute number (ex: 5) or a percentage of desired + machines (ex: 10%). + Absolute number is calculated from percentage by rounding down. + This can not be 0 if MaxSurge is 0. + Defaults to 0. + Example: when this is set to 30%, the old MachineSet can be scaled + down to 70% of desired machines immediately when the rolling update + starts. Once new machines are ready, old MachineSet can be scaled + down further, followed by scaling up the new MachineSet, ensuring + that the total number of machines available at all times + during the update is at least 70% of desired machines. x-kubernetes-int-or-string: true type: object type: - description: Type of deployment. Default is RollingUpdate. + description: |- + Type of deployment. + Default is RollingUpdate. enum: - RollingUpdate - OnDelete @@ -155,53 +230,91 @@ spec: description: Template describes the machines that will be created. properties: metadata: - description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' + description: |- + Standard object's metadata. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: 'Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' + description: |- + Specification of the desired behavior of the machine. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status properties: bootstrap: - description: Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + description: |- + Bootstrap is a reference to a local struct which encapsulates + fields to configure the Machine’s bootstrapping mechanism. properties: configRef: - description: ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + description: |- + ConfigRef is a reference to a bootstrap provider-specific resource + that holds configuration details. The reference is optional to + allow users/operators to specify Bootstrap.DataSecretName without + the need of a controller. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic dataSecretName: - description: DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + description: |- + DataSecretName is the name of the secret that stores the bootstrap data script. + If nil, the Machine should remain in the Pending state. type: string type: object clusterName: @@ -209,42 +322,79 @@ spec: minLength: 1 type: string failureDomain: - description: FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + description: |- + FailureDomain is the failure domain the machine will be created in. + Must match a key in the FailureDomains map stored on the cluster object. type: string infrastructureRef: - description: InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + description: |- + InfrastructureRef is a required reference to a custom resource + offered by an infrastructure provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic nodeDrainTimeout: - description: 'NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`' + description: |- + NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + The default value is 0, meaning that the node can be drained without any time limitations. + NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` type: string providerID: - description: ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + description: |- + ProviderID is the identification ID of the machine provided by the provider. + This field must match the provider ID as seen on the node object corresponding to this machine. + This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + and then a comparison is done to find out unregistered machines and are marked for delete. + This field will be set by the actuators and consumed by higher level entities like autoscaler that will + be interfacing with cluster-api as generic provider. type: string version: - description: Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + description: |- + Version defines the desired Kubernetes version. + This field is meant to be optionally used by bootstrap providers. type: string required: - bootstrap @@ -261,7 +411,9 @@ spec: description: MachineDeploymentStatus defines the observed state of MachineDeployment. properties: availableReplicas: - description: Total number of available machines (ready for at least minReadySeconds) targeted by this deployment. + description: |- + Total number of available machines (ready for at least minReadySeconds) + targeted by this deployment. format: int32 type: integer conditions: @@ -270,23 +422,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - status @@ -305,18 +471,30 @@ spec: format: int32 type: integer replicas: - description: Total number of non-terminated machines targeted by this deployment (their labels match the selector). + description: |- + Total number of non-terminated machines targeted by this deployment + (their labels match the selector). format: int32 type: integer selector: - description: 'Selector is the same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors' + description: |- + Selector is the same as the label selector but in the string format to avoid introspection + by clients. The string will be in the same format as the query-param syntax. + More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors type: string unavailableReplicas: - description: Total number of unavailable machines targeted by this deployment. This is the total number of machines that are still required for the deployment to have 100% available capacity. They may either be machines that are running but not yet available or machines that still have not been created. + description: |- + Total number of unavailable machines targeted by this deployment. + This is the total number of machines that are still required for + the deployment to have 100% available capacity. They may either + be machines that are running but not yet available or machines + that still have not been created. format: int32 type: integer updatedReplicas: - description: Total number of non-terminated machines targeted by this deployment that have the desired template spec. + description: |- + Total number of non-terminated machines targeted by this deployment + that have the desired template spec. format: int32 type: integer type: object diff --git a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinehealthchecks.yaml b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinehealthchecks.yaml index e73d3b278..ef54458b1 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinehealthchecks.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinehealthchecks.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: machinehealthchecks.cluster.x-k8s.io spec: group: cluster.x-k8s.io @@ -43,13 +43,26 @@ spec: name: v1alpha4 schema: openAPIV3Schema: - description: "MachineHealthCheck is the Schema for the machinehealthchecks API. \n Deprecated: This type will be removed in one of the next releases." + description: |- + MachineHealthCheck is the Schema for the machinehealthchecks API. + + + Deprecated: This type will be removed in one of the next releases. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -64,34 +77,65 @@ spec: anyOf: - type: integer - type: string - description: Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by "selector" are not healthy. + description: |- + Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by + "selector" are not healthy. x-kubernetes-int-or-string: true nodeStartupTimeout: - description: Machines older than this duration without a node will be considered to have failed and will be remediated. If not set, this value is defaulted to 10 minutes. If you wish to disable this feature, set the value explicitly to 0. + description: |- + Machines older than this duration without a node will be considered to have + failed and will be remediated. + If not set, this value is defaulted to 10 minutes. + If you wish to disable this feature, set the value explicitly to 0. type: string remediationTemplate: - description: "RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. \n This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API." + description: |- + RemediationTemplate is a reference to a remediation template + provided by an infrastructure provider. + + + This field is completely optional, when filled, the MachineHealthCheck controller + creates a new object from the template referenced and hands off remediation of the machine to + a controller that lives outside of Cluster API. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -101,16 +145,24 @@ spec: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -122,14 +174,23 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic unhealthyConditions: - description: UnhealthyConditions contains a list of the conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. + description: |- + UnhealthyConditions contains a list of the conditions that determine + whether a node is considered unhealthy. The conditions are combined in a + logical OR, i.e. if any of the conditions is met, the node is unhealthy. items: - description: UnhealthyCondition represents a Node condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a node is considered unhealthy. + description: |- + UnhealthyCondition represents a Node condition type and value with a timeout + specified as a duration. When the named condition has been in the given + status for at least the timeout value, a node is considered unhealthy. properties: status: minLength: 1 @@ -147,7 +208,12 @@ spec: minItems: 1 type: array unhealthyRange: - description: 'Any further remediation is only allowed if the number of machines selected by "selector" as not healthy is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. Eg. "[3-5]" - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy machines (and) (b) there are at most 5 unhealthy machines' + description: |- + Any further remediation is only allowed if the number of machines selected by "selector" as not healthy + is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. + Eg. "[3-5]" - This means that remediation will be allowed only when: + (a) there are at least 3 unhealthy machines (and) + (b) there are at most 5 unhealthy machines pattern: ^\[[0-9]+-[0-9]+\]$ type: string required: @@ -164,23 +230,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - status @@ -202,7 +282,9 @@ spec: format: int64 type: integer remediationsAllowed: - description: RemediationsAllowed is the number of further remediations allowed by this machine health check before maxUnhealthy short circuiting will be applied + description: |- + RemediationsAllowed is the number of further remediations allowed by this machine health check before + maxUnhealthy short circuiting will be applied format: int32 minimum: 0.0 type: integer diff --git a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinepools.yaml b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinepools.yaml index 297b02e9a..95d9ad142 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinepools.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinepools.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: machinepools.cluster.x-k8s.io spec: group: cluster.x-k8s.io @@ -38,13 +38,26 @@ spec: name: v1alpha4 schema: openAPIV3Schema: - description: "MachinePool is the Schema for the machinepools API. \n Deprecated: This type will be removed in one of the next releases." + description: |- + MachinePool is the Schema for the machinepools API. + + + Deprecated: This type will be removed in one of the next releases. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -61,69 +74,115 @@ spec: type: string type: array minReadySeconds: - description: Minimum number of seconds for which a newly created machine instances should be ready. Defaults to 0 (machine instance will be considered available as soon as it is ready) + description: |- + Minimum number of seconds for which a newly created machine instances should + be ready. + Defaults to 0 (machine instance will be considered available as soon as it + is ready) format: int32 type: integer providerIDList: - description: ProviderIDList are the identification IDs of machine instances provided by the provider. This field must match the provider IDs as seen on the node objects corresponding to a machine pool's machine instances. + description: |- + ProviderIDList are the identification IDs of machine instances provided by the provider. + This field must match the provider IDs as seen on the node objects corresponding to a machine pool's machine instances. items: type: string type: array replicas: - description: Number of desired machines. Defaults to 1. This is a pointer to distinguish between explicit zero and not specified. + description: |- + Number of desired machines. Defaults to 1. + This is a pointer to distinguish between explicit zero and not specified. format: int32 type: integer template: description: Template describes the machines that will be created. properties: metadata: - description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' + description: |- + Standard object's metadata. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: 'Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' + description: |- + Specification of the desired behavior of the machine. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status properties: bootstrap: - description: Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + description: |- + Bootstrap is a reference to a local struct which encapsulates + fields to configure the Machine’s bootstrapping mechanism. properties: configRef: - description: ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + description: |- + ConfigRef is a reference to a bootstrap provider-specific resource + that holds configuration details. The reference is optional to + allow users/operators to specify Bootstrap.DataSecretName without + the need of a controller. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic dataSecretName: - description: DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + description: |- + DataSecretName is the name of the secret that stores the bootstrap data script. + If nil, the Machine should remain in the Pending state. type: string type: object clusterName: @@ -131,42 +190,79 @@ spec: minLength: 1 type: string failureDomain: - description: FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + description: |- + FailureDomain is the failure domain the machine will be created in. + Must match a key in the FailureDomains map stored on the cluster object. type: string infrastructureRef: - description: InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + description: |- + InfrastructureRef is a required reference to a custom resource + offered by an infrastructure provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic nodeDrainTimeout: - description: 'NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`' + description: |- + NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + The default value is 0, meaning that the node can be drained without any time limitations. + NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` type: string providerID: - description: ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + description: |- + ProviderID is the identification ID of the machine provided by the provider. + This field must match the provider ID as seen on the node object corresponding to this machine. + This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + and then a comparison is done to find out unregistered machines and are marked for delete. + This field will be set by the actuators and consumed by higher level entities like autoscaler that will + be interfacing with cluster-api as generic provider. type: string version: - description: Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + description: |- + Version defines the desired Kubernetes version. + This field is meant to be optionally used by bootstrap providers. type: string required: - bootstrap @@ -194,23 +290,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - status @@ -218,10 +328,14 @@ spec: type: object type: array failureMessage: - description: FailureMessage indicates that there is a problem reconciling the state, and will be set to a descriptive error message. + description: |- + FailureMessage indicates that there is a problem reconciling the state, + and will be set to a descriptive error message. type: string failureReason: - description: FailureReason indicates that there is a problem reconciling the state, and will be set to a token value suitable for programmatic interpretation. + description: |- + FailureReason indicates that there is a problem reconciling the state, and + will be set to a token value suitable for programmatic interpretation. type: string infrastructureReady: description: InfrastructureReady is the state of the infrastructure provider. @@ -229,28 +343,63 @@ spec: nodeRefs: description: NodeRefs will point to the corresponding Nodes if it they exist. items: - description: "ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, \"must refer only to types A and B\" or \"UID not honored\" or \"name must be restricted\". Those cannot be well described when embedded. 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. \n Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 ." + description: |- + ObjectReference contains enough information to let you inspect or modify the referred object. + --- + New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. + 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. + 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular + restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". + Those cannot be well described when embedded. + 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. + 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity + during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple + and the version of the actual struct is irrelevant. + 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type + will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. + + + Instead of using this type, create a locally provided and used type that is well-focused on your reference. + For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -260,7 +409,9 @@ spec: format: int64 type: integer phase: - description: Phase represents the current phase of cluster actuation. E.g. Pending, Running, Terminating, Failed etc. + description: |- + Phase represents the current phase of cluster actuation. + E.g. Pending, Running, Terminating, Failed etc. type: string readyReplicas: description: The number of ready replicas for this MachinePool. A machine is considered ready when the node has been created and is "Ready". @@ -271,7 +422,12 @@ spec: format: int32 type: integer unavailableReplicas: - description: Total number of unavailable machine instances targeted by this machine pool. This is the total number of machine instances that are still required for the machine pool to have 100% available capacity. They may either be machine instances that are running but not yet available or machine instances that still have not been created. + description: |- + Total number of unavailable machine instances targeted by this machine pool. + This is the total number of machine instances that are still required for + the machine pool to have 100% available capacity. They may either + be machine instances that are running but not yet available or machine instances + that still have not been created. format: int32 type: integer type: object diff --git a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machines.yaml b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machines.yaml index 7a7ae6911..683161415 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machines.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machines.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: machines.cluster.x-k8s.io spec: group: cluster.x-k8s.io @@ -47,13 +47,26 @@ spec: name: v1alpha4 schema: openAPIV3Schema: - description: "Machine is the Schema for the machines API. \n Deprecated: This type will be removed in one of the next releases." + description: |- + Machine is the Schema for the machines API. + + + Deprecated: This type will be removed in one of the next releases. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -61,36 +74,62 @@ spec: description: MachineSpec defines the desired state of Machine. properties: bootstrap: - description: Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + description: |- + Bootstrap is a reference to a local struct which encapsulates + fields to configure the Machine’s bootstrapping mechanism. properties: configRef: - description: ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + description: |- + ConfigRef is a reference to a bootstrap provider-specific resource + that holds configuration details. The reference is optional to + allow users/operators to specify Bootstrap.DataSecretName without + the need of a controller. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic dataSecretName: - description: DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + description: |- + DataSecretName is the name of the secret that stores the bootstrap data script. + If nil, the Machine should remain in the Pending state. type: string type: object clusterName: @@ -98,42 +137,79 @@ spec: minLength: 1 type: string failureDomain: - description: FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + description: |- + FailureDomain is the failure domain the machine will be created in. + Must match a key in the FailureDomains map stored on the cluster object. type: string infrastructureRef: - description: InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + description: |- + InfrastructureRef is a required reference to a custom resource + offered by an infrastructure provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic nodeDrainTimeout: - description: 'NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`' + description: |- + NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + The default value is 0, meaning that the node can be drained without any time limitations. + NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` type: string providerID: - description: ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + description: |- + ProviderID is the identification ID of the machine provided by the provider. + This field must match the provider ID as seen on the node object corresponding to this machine. + This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + and then a comparison is done to find out unregistered machines and are marked for delete. + This field will be set by the actuators and consumed by higher level entities like autoscaler that will + be interfacing with cluster-api as generic provider. type: string version: - description: Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + description: |- + Version defines the desired Kubernetes version. + This field is meant to be optionally used by bootstrap providers. type: string required: - bootstrap @@ -144,7 +220,9 @@ spec: description: MachineStatus defines the observed state of Machine. properties: addresses: - description: Addresses is a list of addresses assigned to the machine. This field is copied from the infrastructure provider reference. + description: |- + Addresses is a list of addresses assigned to the machine. + This field is copied from the infrastructure provider reference. items: description: MachineAddress contains information for the node's address. properties: @@ -168,23 +246,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - status @@ -192,10 +284,46 @@ spec: type: object type: array failureMessage: - description: "FailureMessage will be set in the event that there is a terminal problem reconciling the Machine and will contain a more verbose string suitable for logging and human consumption. \n This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. \n Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output." + description: |- + FailureMessage will be set in the event that there is a terminal problem + reconciling the Machine and will contain a more verbose string suitable + for logging and human consumption. + + + This field should not be set for transitive errors that a controller + faces that are expected to be fixed automatically over + time (like service outages), but instead indicate that something is + fundamentally wrong with the Machine's spec or the configuration of + the controller, and that manual intervention is required. Examples + of terminal errors would be invalid combinations of settings in the + spec, values that are unsupported by the controller, or the + responsible controller itself being critically misconfigured. + + + Any transient errors that occur during the reconciliation of Machines + can be added as events to the Machine object and/or logged in the + controller's output. type: string failureReason: - description: "FailureReason will be set in the event that there is a terminal problem reconciling the Machine and will contain a succinct value suitable for machine interpretation. \n This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. \n Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output." + description: |- + FailureReason will be set in the event that there is a terminal problem + reconciling the Machine and will contain a succinct value suitable + for machine interpretation. + + + This field should not be set for transitive errors that a controller + faces that are expected to be fixed automatically over + time (like service outages), but instead indicate that something is + fundamentally wrong with the Machine's spec or the configuration of + the controller, and that manual intervention is required. Examples + of terminal errors would be invalid combinations of settings in the + spec, values that are unsupported by the controller, or the + responsible controller itself being critically misconfigured. + + + Any transient errors that occur during the reconciliation of Machines + can be added as events to the Machine object and/or logged in the + controller's output. type: string infrastructureReady: description: InfrastructureReady is the state of the infrastructure provider. @@ -205,7 +333,9 @@ spec: format: date-time type: string nodeInfo: - description: 'NodeInfo is a set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info' + description: |- + NodeInfo is a set of ids/uuids to uniquely identify the node. + More info: https://kubernetes.io/docs/concepts/nodes/node/#info properties: architecture: description: The Architecture reported by the node @@ -226,7 +356,10 @@ spec: description: Kubelet Version reported by the node. type: string machineID: - description: 'MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html' + description: |- + MachineID reported by the node. For unique machine identification + in the cluster this field is preferred. Learn more from man(5) + machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html type: string operatingSystem: description: The Operating System reported by the node @@ -235,7 +368,10 @@ spec: description: OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)). type: string systemUUID: - description: SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid + description: |- + SystemUUID reported by the node. For unique machine identification + MachineID is preferred. This field is specific to Red Hat hosts + https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid type: string required: - architecture @@ -256,22 +392,40 @@ spec: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -280,10 +434,16 @@ spec: format: int64 type: integer phase: - description: Phase represents the current phase of machine actuation. E.g. Pending, Running, Terminating, Failed etc. + description: |- + Phase represents the current phase of machine actuation. + E.g. Pending, Running, Terminating, Failed etc. type: string version: - description: Version specifies the current version of Kubernetes running on the corresponding Node. This is meant to be a means of bubbling up status from the Node to the Machine. It is entirely optional, but useful for end-user UX if it’s present. + description: |- + Version specifies the current version of Kubernetes running + on the corresponding Node. This is meant to be a means of bubbling + up status from the Node to the Machine. + It is entirely optional, but useful for end-user UX if it’s present. type: string type: object type: object diff --git a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinesets.yaml b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinesets.yaml index 0ff22db02..88745a963 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinesets.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1alpha4/machinesets.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: machinesets.cluster.x-k8s.io spec: group: cluster.x-k8s.io @@ -42,13 +42,26 @@ spec: name: v1alpha4 schema: openAPIV3Schema: - description: "MachineSet is the Schema for the machinesets API. \n Deprecated: This type will be removed in one of the next releases." + description: |- + MachineSet is the Schema for the machinesets API. + + + Deprecated: This type will be removed in one of the next releases. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -60,37 +73,56 @@ spec: minLength: 1 type: string deletePolicy: - description: DeletePolicy defines the policy used to identify nodes to delete when downscaling. Defaults to "Random". Valid values are "Random, "Newest", "Oldest" + description: |- + DeletePolicy defines the policy used to identify nodes to delete when downscaling. + Defaults to "Random". Valid values are "Random, "Newest", "Oldest" enum: - Random - Newest - Oldest type: string minReadySeconds: - description: MinReadySeconds is the minimum number of seconds for which a newly created machine should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) + description: |- + MinReadySeconds is the minimum number of seconds for which a newly created machine should be ready. + Defaults to 0 (machine will be considered available as soon as it is ready) format: int32 type: integer replicas: default: 1 - description: Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. + description: |- + Replicas is the number of desired replicas. + This is a pointer to distinguish between explicit zero and unspecified. + Defaults to 1. format: int32 type: integer selector: - description: 'Selector is a label query over machines that should match the replica count. Label keys and values that must match in order to be controlled by this MachineSet. It must match the machine template''s labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' + description: |- + Selector is a label query over machines that should match the replica count. + Label keys and values that must match in order to be controlled by this MachineSet. + It must match the machine template's labels. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -102,61 +134,105 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic template: - description: Template is the object that describes the machine that will be created if insufficient replicas are detected. Object references to custom resources are treated as templates. + description: |- + Template is the object that describes the machine that will be created if + insufficient replicas are detected. + Object references to custom resources are treated as templates. properties: metadata: - description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' + description: |- + Standard object's metadata. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: 'Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' + description: |- + Specification of the desired behavior of the machine. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status properties: bootstrap: - description: Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + description: |- + Bootstrap is a reference to a local struct which encapsulates + fields to configure the Machine’s bootstrapping mechanism. properties: configRef: - description: ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + description: |- + ConfigRef is a reference to a bootstrap provider-specific resource + that holds configuration details. The reference is optional to + allow users/operators to specify Bootstrap.DataSecretName without + the need of a controller. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic dataSecretName: - description: DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + description: |- + DataSecretName is the name of the secret that stores the bootstrap data script. + If nil, the Machine should remain in the Pending state. type: string type: object clusterName: @@ -164,42 +240,79 @@ spec: minLength: 1 type: string failureDomain: - description: FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + description: |- + FailureDomain is the failure domain the machine will be created in. + Must match a key in the FailureDomains map stored on the cluster object. type: string infrastructureRef: - description: InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + description: |- + InfrastructureRef is a required reference to a custom resource + offered by an infrastructure provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic nodeDrainTimeout: - description: 'NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`' + description: |- + NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + The default value is 0, meaning that the node can be drained without any time limitations. + NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` type: string providerID: - description: ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + description: |- + ProviderID is the identification ID of the machine provided by the provider. + This field must match the provider ID as seen on the node object corresponding to this machine. + This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + and then a comparison is done to find out unregistered machines and are marked for delete. + This field will be set by the actuators and consumed by higher level entities like autoscaler that will + be interfacing with cluster-api as generic provider. type: string version: - description: Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + description: |- + Version defines the desired Kubernetes version. + This field is meant to be optionally used by bootstrap providers. type: string required: - bootstrap @@ -224,23 +337,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - status @@ -250,7 +377,27 @@ spec: failureMessage: type: string failureReason: - description: "In the event that there is a terminal problem reconciling the replicas, both FailureReason and FailureMessage will be set. FailureReason will be populated with a succinct value suitable for machine interpretation, while FailureMessage will contain a more verbose string suitable for logging and human consumption. \n These fields should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the MachineTemplate's spec or the configuration of the machine controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the machine controller, or the responsible machine controller itself being critically misconfigured. \n Any transient errors that occur during the reconciliation of Machines can be added as events to the MachineSet object and/or logged in the controller's output." + description: |- + In the event that there is a terminal problem reconciling the + replicas, both FailureReason and FailureMessage will be set. FailureReason + will be populated with a succinct value suitable for machine + interpretation, while FailureMessage will contain a more verbose + string suitable for logging and human consumption. + + + These fields should not be set for transitive errors that a + controller faces that are expected to be fixed automatically over + time (like service outages), but instead indicate that something is + fundamentally wrong with the MachineTemplate's spec or the configuration of + the machine controller, and that manual intervention is required. Examples + of terminal errors would be invalid combinations of settings in the + spec, values that are unsupported by the machine controller, or the + responsible machine controller itself being critically misconfigured. + + + Any transient errors that occur during the reconciliation of Machines + can be added as events to the MachineSet object and/or logged in the + controller's output. type: string fullyLabeledReplicas: description: The number of replicas that have labels matching the labels of the machine template of the MachineSet. @@ -269,7 +416,10 @@ spec: format: int32 type: integer selector: - description: 'Selector is the same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors' + description: |- + Selector is the same as the label selector but in the string format to avoid introspection + by clients. The string will be in the same format as the query-param syntax. + More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors type: string type: object type: object diff --git a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/clusterclasses.yaml b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/clusterclasses.yaml index e788074b3..7dc6c763e 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/clusterclasses.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/clusterclasses.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: clusterclasses.cluster.x-k8s.io spec: group: cluster.x-k8s.io @@ -28,10 +28,19 @@ spec: description: ClusterClass is a template which can be used to create managed topologies. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -39,50 +48,91 @@ spec: description: ClusterClassSpec describes the desired state of the ClusterClass. properties: controlPlane: - description: ControlPlane is a reference to a local struct that holds the details for provisioning the Control Plane for the Cluster. + description: |- + ControlPlane is a reference to a local struct that holds the details + for provisioning the Control Plane for the Cluster. properties: machineHealthCheck: - description: MachineHealthCheck defines a MachineHealthCheck for this ControlPlaneClass. This field is supported if and only if the ControlPlane provider template referenced above is Machine based and supports setting replicas. + description: |- + MachineHealthCheck defines a MachineHealthCheck for this ControlPlaneClass. + This field is supported if and only if the ControlPlane provider template + referenced above is Machine based and supports setting replicas. properties: maxUnhealthy: anyOf: - type: integer - type: string - description: Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by "selector" are not healthy. + description: |- + Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by + "selector" are not healthy. x-kubernetes-int-or-string: true nodeStartupTimeout: - description: Machines older than this duration without a node will be considered to have failed and will be remediated. If you wish to disable this feature, set the value explicitly to 0. + description: |- + Machines older than this duration without a node will be considered to have + failed and will be remediated. + If you wish to disable this feature, set the value explicitly to 0. type: string remediationTemplate: - description: "RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. \n This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API." + description: |- + RemediationTemplate is a reference to a remediation template + provided by an infrastructure provider. + + + This field is completely optional, when filled, the MachineHealthCheck controller + creates a new object from the template referenced and hands off remediation of the machine to + a controller that lives outside of Cluster API. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic unhealthyConditions: - description: UnhealthyConditions contains a list of the conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. + description: |- + UnhealthyConditions contains a list of the conditions that determine + whether a node is considered unhealthy. The conditions are combined in a + logical OR, i.e. if any of the conditions is met, the node is unhealthy. items: - description: UnhealthyCondition represents a Node condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a node is considered unhealthy. + description: |- + UnhealthyCondition represents a Node condition type and value with a timeout + specified as a duration. When the named condition has been in the given + status for at least the timeout value, a node is considered unhealthy. properties: status: minLength: 1 @@ -99,36 +149,67 @@ spec: type: object type: array unhealthyRange: - description: 'Any further remediation is only allowed if the number of machines selected by "selector" as not healthy is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. Eg. "[3-5]" - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy machines (and) (b) there are at most 5 unhealthy machines' + description: |- + Any further remediation is only allowed if the number of machines selected by "selector" as not healthy + is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. + Eg. "[3-5]" - This means that remediation will be allowed only when: + (a) there are at least 3 unhealthy machines (and) + (b) there are at most 5 unhealthy machines pattern: ^\[[0-9]+-[0-9]+\]$ type: string type: object machineInfrastructure: - description: "MachineInfrastructure defines the metadata and infrastructure information for control plane machines. \n This field is supported if and only if the control plane provider template referenced above is Machine based and supports setting replicas." + description: |- + MachineInfrastructure defines the metadata and infrastructure information + for control plane machines. + + + This field is supported if and only if the control plane provider template + referenced above is Machine based and supports setting replicas. properties: ref: - description: Ref is a required reference to a custom resource offered by a provider. + description: |- + Ref is a required reference to a custom resource + offered by a provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -136,58 +217,112 @@ spec: - ref type: object metadata: - description: "Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane if the ControlPlaneTemplate referenced is machine based. If not, it is applied only to the ControlPlane. At runtime this metadata is merged with the corresponding metadata from the topology. \n This field is supported if and only if the control plane provider template referenced is Machine based." + description: |- + Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane + if the ControlPlaneTemplate referenced is machine based. If not, it is applied only to the + ControlPlane. + At runtime this metadata is merged with the corresponding metadata from the topology. + + + This field is supported if and only if the control plane provider template + referenced is Machine based. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object namingStrategy: description: NamingStrategy allows changing the naming pattern used when creating the control plane provider object. properties: template: - description: 'Template defines the template to use for generating the name of the ControlPlane object. If not defined, it will fallback to `{{ .cluster.name }}-{{ .random }}`. If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will get concatenated with a random suffix of length 5. The templating mechanism provides the following arguments: * `.cluster.name`: The name of the cluster object. * `.random`: A random alphanumeric string, without vowels, of length 5.' + description: |- + Template defines the template to use for generating the name of the ControlPlane object. + If not defined, it will fallback to `{{ .cluster.name }}-{{ .random }}`. + If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will + get concatenated with a random suffix of length 5. + The templating mechanism provides the following arguments: + * `.cluster.name`: The name of the cluster object. + * `.random`: A random alphanumeric string, without vowels, of length 5. type: string type: object nodeDeletionTimeout: - description: 'NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. NOTE: This value can be overridden while defining a Cluster.Topology.' + description: |- + NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + Defaults to 10 seconds. + NOTE: This value can be overridden while defining a Cluster.Topology. type: string nodeDrainTimeout: - description: 'NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` NOTE: This value can be overridden while defining a Cluster.Topology.' + description: |- + NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + The default value is 0, meaning that the node can be drained without any time limitations. + NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + NOTE: This value can be overridden while defining a Cluster.Topology. type: string nodeVolumeDetachTimeout: - description: 'NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. NOTE: This value can be overridden while defining a Cluster.Topology.' + description: |- + NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + NOTE: This value can be overridden while defining a Cluster.Topology. type: string ref: - description: Ref is a required reference to a custom resource offered by a provider. + description: |- + Ref is a required reference to a custom resource + offered by a provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -195,31 +330,56 @@ spec: - ref type: object infrastructure: - description: Infrastructure is a reference to a provider-specific template that holds the details for provisioning infrastructure specific cluster for the underlying provider. The underlying provider is responsible for the implementation of the template to an infrastructure cluster. + description: |- + Infrastructure is a reference to a provider-specific template that holds + the details for provisioning infrastructure specific cluster + for the underlying provider. + The underlying provider is responsible for the implementation + of the template to an infrastructure cluster. properties: ref: - description: Ref is a required reference to a custom resource offered by a provider. + description: |- + Ref is a required reference to a custom resource + offered by a provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -227,37 +387,68 @@ spec: - ref type: object patches: - description: 'Patches defines the patches which are applied to customize referenced templates of a ClusterClass. Note: Patches will be applied in the order of the array.' + description: |- + Patches defines the patches which are applied to customize + referenced templates of a ClusterClass. + Note: Patches will be applied in the order of the array. items: description: ClusterClassPatch defines a patch which is applied to customize the referenced templates. properties: definitions: - description: 'Definitions define inline patches. Note: Patches will be applied in the order of the array. Note: Exactly one of Definitions or External must be set.' + description: |- + Definitions define inline patches. + Note: Patches will be applied in the order of the array. + Note: Exactly one of Definitions or External must be set. items: description: PatchDefinition defines a patch which is applied to customize the referenced templates. properties: jsonPatches: - description: 'JSONPatches defines the patches which should be applied on the templates matching the selector. Note: Patches will be applied in the order of the array.' + description: |- + JSONPatches defines the patches which should be applied on the templates + matching the selector. + Note: Patches will be applied in the order of the array. items: description: JSONPatch defines a JSON patch. properties: op: - description: 'Op defines the operation of the patch. Note: Only `add`, `replace` and `remove` are supported.' + description: |- + Op defines the operation of the patch. + Note: Only `add`, `replace` and `remove` are supported. type: string path: - description: 'Path defines the path of the patch. Note: Only the spec of a template can be patched, thus the path has to start with /spec/. Note: For now the only allowed array modifications are `append` and `prepend`, i.e.: * for op: `add`: only index 0 (prepend) and - (append) are allowed * for op: `replace` or `remove`: no indexes are allowed' + description: |- + Path defines the path of the patch. + Note: Only the spec of a template can be patched, thus the path has to start with /spec/. + Note: For now the only allowed array modifications are `append` and `prepend`, i.e.: + * for op: `add`: only index 0 (prepend) and - (append) are allowed + * for op: `replace` or `remove`: no indexes are allowed type: string value: - description: 'Value defines the value of the patch. Note: Either Value or ValueFrom is required for add and replace operations. Only one of them is allowed to be set at the same time. Note: We have to use apiextensionsv1.JSON instead of our JSON type, because controller-tools has a hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type (unset type field). Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111' + description: |- + Value defines the value of the patch. + Note: Either Value or ValueFrom is required for add and replace + operations. Only one of them is allowed to be set at the same time. + Note: We have to use apiextensionsv1.JSON instead of our JSON type, + because controller-tools has a hard-coded schema for apiextensionsv1.JSON + which cannot be produced by another type (unset type field). + Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111 x-kubernetes-preserve-unknown-fields: true valueFrom: - description: 'ValueFrom defines the value of the patch. Note: Either Value or ValueFrom is required for add and replace operations. Only one of them is allowed to be set at the same time.' + description: |- + ValueFrom defines the value of the patch. + Note: Either Value or ValueFrom is required for add and replace + operations. Only one of them is allowed to be set at the same time. properties: template: - description: 'Template is the Go template to be used to calculate the value. A template can reference variables defined in .spec.variables and builtin variables. Note: The template must evaluate to a valid YAML or JSON value.' + description: |- + Template is the Go template to be used to calculate the value. + A template can reference variables defined in .spec.variables and builtin variables. + Note: The template must evaluate to a valid YAML or JSON value. type: string variable: - description: Variable is the variable to be used as value. Variable can be one of the variables defined in .spec.variables or a builtin variable. + description: |- + Variable is the variable to be used as value. + Variable can be one of the variables defined in .spec.variables or a builtin variable. type: string type: object required: @@ -278,13 +469,18 @@ spec: description: MatchResources selects templates based on where they are referenced. properties: controlPlane: - description: 'ControlPlane selects templates referenced in .spec.ControlPlane. Note: this will match the controlPlane and also the controlPlane machineInfrastructure (depending on the kind and apiVersion).' + description: |- + ControlPlane selects templates referenced in .spec.ControlPlane. + Note: this will match the controlPlane and also the controlPlane + machineInfrastructure (depending on the kind and apiVersion). type: boolean infrastructureCluster: description: InfrastructureCluster selects templates referenced in .spec.infrastructure. type: boolean machineDeploymentClass: - description: MachineDeploymentClass selects templates referenced in specific MachineDeploymentClasses in .spec.workers.machineDeployments. + description: |- + MachineDeploymentClass selects templates referenced in specific MachineDeploymentClasses in + .spec.workers.machineDeployments. properties: names: description: Names selects templates by class names. @@ -293,7 +489,9 @@ spec: type: array type: object machinePoolClass: - description: MachinePoolClass selects templates referenced in specific MachinePoolClasses in .spec.workers.machinePools. + description: |- + MachinePoolClass selects templates referenced in specific MachinePoolClasses in + .spec.workers.machinePools. properties: names: description: Names selects templates by class names. @@ -316,10 +514,17 @@ spec: description: Description is a human-readable description of this patch. type: string enabledIf: - description: EnabledIf is a Go template to be used to calculate if a patch should be enabled. It can reference variables defined in .spec.variables and builtin variables. The patch will be enabled if the template evaluates to `true`, otherwise it will be disabled. If EnabledIf is not set, the patch will be enabled per default. + description: |- + EnabledIf is a Go template to be used to calculate if a patch should be enabled. + It can reference variables defined in .spec.variables and builtin variables. + The patch will be enabled if the template evaluates to `true`, otherwise it will + be disabled. + If EnabledIf is not set, the patch will be enabled per default. type: string external: - description: 'External defines an external patch. Note: Exactly one of Definitions or External must be set.' + description: |- + External defines an external patch. + Note: Exactly one of Definitions or External must be set. properties: discoverVariablesExtension: description: DiscoverVariablesExtension references an extension which is called to discover variables. @@ -330,7 +535,10 @@ spec: settings: additionalProperties: type: string - description: Settings defines key value pairs to be passed to the extensions. Values defined here take precedence over the values defined in the corresponding ExtensionConfig. + description: |- + Settings defines key value pairs to be passed to the extensions. + Values defined here take precedence over the values defined in the + corresponding ExtensionConfig. type: object validateExtension: description: ValidateExtension references an extension which is called to validate the topology. @@ -344,33 +552,53 @@ spec: type: object type: array variables: - description: Variables defines the variables which can be configured in the Cluster topology and are then used in patches. + description: |- + Variables defines the variables which can be configured + in the Cluster topology and are then used in patches. items: - description: ClusterClassVariable defines a variable which can be configured in the Cluster topology and used in patches. + description: |- + ClusterClassVariable defines a variable which can + be configured in the Cluster topology and used in patches. properties: name: description: Name of the variable. type: string required: - description: 'Required specifies if the variable is required. Note: this applies to the variable as a whole and thus the top-level object defined in the schema. If nested fields are required, this will be specified inside the schema.' + description: |- + Required specifies if the variable is required. + Note: this applies to the variable as a whole and thus the + top-level object defined in the schema. If nested fields are + required, this will be specified inside the schema. type: boolean schema: description: Schema defines the schema of the variable. properties: openAPIV3Schema: - description: OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 schema. The schema is a subset of the schema used in Kubernetes CRDs. + description: |- + OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 + schema. The schema is a subset of the schema used in + Kubernetes CRDs. properties: additionalProperties: - description: 'AdditionalProperties specifies the schema of values in a map (keys are always strings). NOTE: Can only be set if type is object. NOTE: AdditionalProperties is mutually exclusive with Properties. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible.' + description: |- + AdditionalProperties specifies the schema of values in a map (keys are always strings). + NOTE: Can only be set if type is object. + NOTE: AdditionalProperties is mutually exclusive with Properties. + NOTE: This field uses PreserveUnknownFields and Schemaless, + because recursive validation is not possible. x-kubernetes-preserve-unknown-fields: true default: - description: 'Default is the default value of the variable. NOTE: Can be set for all types.' + description: |- + Default is the default value of the variable. + NOTE: Can be set for all types. x-kubernetes-preserve-unknown-fields: true description: description: Description is a human-readable description of this variable. type: string enum: - description: 'Enum is the list of valid values of the variable. NOTE: Can be set for all types.' + description: |- + Enum is the list of valid values of the variable. + NOTE: Can be set for all types. items: x-kubernetes-preserve-unknown-fields: true type: array @@ -378,60 +606,104 @@ spec: description: Example is an example for this variable. x-kubernetes-preserve-unknown-fields: true exclusiveMaximum: - description: 'ExclusiveMaximum specifies if the Maximum is exclusive. NOTE: Can only be set if type is integer or number.' + description: |- + ExclusiveMaximum specifies if the Maximum is exclusive. + NOTE: Can only be set if type is integer or number. type: boolean exclusiveMinimum: - description: 'ExclusiveMinimum specifies if the Minimum is exclusive. NOTE: Can only be set if type is integer or number.' + description: |- + ExclusiveMinimum specifies if the Minimum is exclusive. + NOTE: Can only be set if type is integer or number. type: boolean format: - description: 'Format is an OpenAPI v3 format string. Unknown formats are ignored. For a list of supported formats please see: (of the k8s.io/apiextensions-apiserver version we''re currently using) https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apiserver/validation/formats.go NOTE: Can only be set if type is string.' + description: |- + Format is an OpenAPI v3 format string. Unknown formats are ignored. + For a list of supported formats please see: (of the k8s.io/apiextensions-apiserver version we're currently using) + https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apiserver/validation/formats.go + NOTE: Can only be set if type is string. type: string items: - description: 'Items specifies fields of an array. NOTE: Can only be set if type is array. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible.' + description: |- + Items specifies fields of an array. + NOTE: Can only be set if type is array. + NOTE: This field uses PreserveUnknownFields and Schemaless, + because recursive validation is not possible. x-kubernetes-preserve-unknown-fields: true maxItems: - description: 'MaxItems is the max length of an array variable. NOTE: Can only be set if type is array.' + description: |- + MaxItems is the max length of an array variable. + NOTE: Can only be set if type is array. format: int64 type: integer maxLength: - description: 'MaxLength is the max length of a string variable. NOTE: Can only be set if type is string.' + description: |- + MaxLength is the max length of a string variable. + NOTE: Can only be set if type is string. format: int64 type: integer maximum: - description: 'Maximum is the maximum of an integer or number variable. If ExclusiveMaximum is false, the variable is valid if it is lower than, or equal to, the value of Maximum. If ExclusiveMaximum is true, the variable is valid if it is strictly lower than the value of Maximum. NOTE: Can only be set if type is integer or number.' + description: |- + Maximum is the maximum of an integer or number variable. + If ExclusiveMaximum is false, the variable is valid if it is lower than, or equal to, the value of Maximum. + If ExclusiveMaximum is true, the variable is valid if it is strictly lower than the value of Maximum. + NOTE: Can only be set if type is integer or number. format: int64 type: integer minItems: - description: 'MinItems is the min length of an array variable. NOTE: Can only be set if type is array.' + description: |- + MinItems is the min length of an array variable. + NOTE: Can only be set if type is array. format: int64 type: integer minLength: - description: 'MinLength is the min length of a string variable. NOTE: Can only be set if type is string.' + description: |- + MinLength is the min length of a string variable. + NOTE: Can only be set if type is string. format: int64 type: integer minimum: - description: 'Minimum is the minimum of an integer or number variable. If ExclusiveMinimum is false, the variable is valid if it is greater than, or equal to, the value of Minimum. If ExclusiveMinimum is true, the variable is valid if it is strictly greater than the value of Minimum. NOTE: Can only be set if type is integer or number.' + description: |- + Minimum is the minimum of an integer or number variable. + If ExclusiveMinimum is false, the variable is valid if it is greater than, or equal to, the value of Minimum. + If ExclusiveMinimum is true, the variable is valid if it is strictly greater than the value of Minimum. + NOTE: Can only be set if type is integer or number. format: int64 type: integer pattern: - description: 'Pattern is the regex which a string variable must match. NOTE: Can only be set if type is string.' + description: |- + Pattern is the regex which a string variable must match. + NOTE: Can only be set if type is string. type: string properties: - description: 'Properties specifies fields of an object. NOTE: Can only be set if type is object. NOTE: Properties is mutually exclusive with AdditionalProperties. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible.' + description: |- + Properties specifies fields of an object. + NOTE: Can only be set if type is object. + NOTE: Properties is mutually exclusive with AdditionalProperties. + NOTE: This field uses PreserveUnknownFields and Schemaless, + because recursive validation is not possible. x-kubernetes-preserve-unknown-fields: true required: - description: 'Required specifies which fields of an object are required. NOTE: Can only be set if type is object.' + description: |- + Required specifies which fields of an object are required. + NOTE: Can only be set if type is object. items: type: string type: array type: - description: 'Type is the type of the variable. Valid values are: object, array, string, integer, number or boolean.' + description: |- + Type is the type of the variable. + Valid values are: object, array, string, integer, number or boolean. type: string uniqueItems: - description: 'UniqueItems specifies if items in an array must be unique. NOTE: Can only be set if type is array.' + description: |- + UniqueItems specifies if items in an array must be unique. + NOTE: Can only be set if type is array. type: boolean x-kubernetes-preserve-unknown-fields: - description: XPreserveUnknownFields allows setting fields in a variable object which are not defined in the variable schema. This affects fields recursively, except if nested properties or additionalProperties are specified in the schema. + description: |- + XPreserveUnknownFields allows setting fields in a variable object + which are not defined in the variable schema. This affects fields recursively, + except if nested properties or additionalProperties are specified in the schema. type: boolean required: - type @@ -446,18 +718,31 @@ spec: type: object type: array workers: - description: Workers describes the worker nodes for the cluster. It is a collection of node types which can be used to create the worker nodes of the cluster. + description: |- + Workers describes the worker nodes for the cluster. + It is a collection of node types which can be used to create + the worker nodes of the cluster. properties: machineDeployments: - description: MachineDeployments is a list of machine deployment classes that can be used to create a set of worker nodes. + description: |- + MachineDeployments is a list of machine deployment classes that can be used to create + a set of worker nodes. items: - description: MachineDeploymentClass serves as a template to define a set of worker nodes of the cluster provisioned using the `ClusterClass`. + description: |- + MachineDeploymentClass serves as a template to define a set of worker nodes of the cluster + provisioned using the `ClusterClass`. properties: class: - description: Class denotes a type of worker node present in the cluster, this name MUST be unique within a ClusterClass and can be referenced in the Cluster to create a managed MachineDeployment. + description: |- + Class denotes a type of worker node present in the cluster, + this name MUST be unique within a ClusterClass and can be referenced + in the Cluster to create a managed MachineDeployment. type: string failureDomain: - description: 'FailureDomain is the failure domain the machines will be created in. Must match a key in the FailureDomains map stored on the cluster object. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass.' + description: |- + FailureDomain is the failure domain the machines will be created in. + Must match a key in the FailureDomains map stored on the cluster object. + NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. type: string machineHealthCheck: description: MachineHealthCheck defines a MachineHealthCheck for this MachineDeploymentClass. @@ -466,41 +751,77 @@ spec: anyOf: - type: integer - type: string - description: Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by "selector" are not healthy. + description: |- + Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by + "selector" are not healthy. x-kubernetes-int-or-string: true nodeStartupTimeout: - description: Machines older than this duration without a node will be considered to have failed and will be remediated. If you wish to disable this feature, set the value explicitly to 0. + description: |- + Machines older than this duration without a node will be considered to have + failed and will be remediated. + If you wish to disable this feature, set the value explicitly to 0. type: string remediationTemplate: - description: "RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. \n This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API." + description: |- + RemediationTemplate is a reference to a remediation template + provided by an infrastructure provider. + + + This field is completely optional, when filled, the MachineHealthCheck controller + creates a new object from the template referenced and hands off remediation of the machine to + a controller that lives outside of Cluster API. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic unhealthyConditions: - description: UnhealthyConditions contains a list of the conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. + description: |- + UnhealthyConditions contains a list of the conditions that determine + whether a node is considered unhealthy. The conditions are combined in a + logical OR, i.e. if any of the conditions is met, the node is unhealthy. items: - description: UnhealthyCondition represents a Node condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a node is considered unhealthy. + description: |- + UnhealthyCondition represents a Node condition type and value with a timeout + specified as a duration. When the named condition has been in the given + status for at least the timeout value, a node is considered unhealthy. properties: status: minLength: 1 @@ -517,38 +838,75 @@ spec: type: object type: array unhealthyRange: - description: 'Any further remediation is only allowed if the number of machines selected by "selector" as not healthy is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. Eg. "[3-5]" - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy machines (and) (b) there are at most 5 unhealthy machines' + description: |- + Any further remediation is only allowed if the number of machines selected by "selector" as not healthy + is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. + Eg. "[3-5]" - This means that remediation will be allowed only when: + (a) there are at least 3 unhealthy machines (and) + (b) there are at most 5 unhealthy machines pattern: ^\[[0-9]+-[0-9]+\]$ type: string type: object minReadySeconds: - description: 'Minimum number of seconds for which a newly created machine should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass.' + description: |- + Minimum number of seconds for which a newly created machine should + be ready. + Defaults to 0 (machine will be considered available as soon as it + is ready) + NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. format: int32 type: integer namingStrategy: description: NamingStrategy allows changing the naming pattern used when creating the MachineDeployment. properties: template: - description: 'Template defines the template to use for generating the name of the MachineDeployment object. If not defined, it will fallback to `{{ .cluster.name }}-{{ .machineDeployment.topologyName }}-{{ .random }}`. If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will get concatenated with a random suffix of length 5. The templating mechanism provides the following arguments: * `.cluster.name`: The name of the cluster object. * `.random`: A random alphanumeric string, without vowels, of length 5. * `.machineDeployment.topologyName`: The name of the MachineDeployment topology (Cluster.spec.topology.workers.machineDeployments[].name).' + description: |- + Template defines the template to use for generating the name of the MachineDeployment object. + If not defined, it will fallback to `{{ .cluster.name }}-{{ .machineDeployment.topologyName }}-{{ .random }}`. + If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will + get concatenated with a random suffix of length 5. + The templating mechanism provides the following arguments: + * `.cluster.name`: The name of the cluster object. + * `.random`: A random alphanumeric string, without vowels, of length 5. + * `.machineDeployment.topologyName`: The name of the MachineDeployment topology (Cluster.spec.topology.workers.machineDeployments[].name). type: string type: object nodeDeletionTimeout: - description: 'NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass.' + description: |- + NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + Defaults to 10 seconds. + NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. type: string nodeDrainTimeout: - description: 'NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass.' + description: |- + NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + The default value is 0, meaning that the node can be drained without any time limitations. + NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. type: string nodeVolumeDetachTimeout: - description: 'NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass.' + description: |- + NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. type: string strategy: - description: 'The deployment strategy to use to replace existing machines with new ones. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass.' + description: |- + The deployment strategy to use to replace existing machines with + new ones. + NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. properties: rollingUpdate: - description: Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. + description: |- + Rolling update config params. Present only if + MachineDeploymentStrategyType = RollingUpdate. properties: deletePolicy: - description: DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. Valid values are "Random, "Newest", "Oldest" When no value is supplied, the default DeletePolicy of MachineSet is used + description: |- + DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. + Valid values are "Random, "Newest", "Oldest" + When no value is supplied, the default DeletePolicy of MachineSet is used enum: - Random - Newest @@ -558,51 +916,102 @@ spec: anyOf: - type: integer - type: string - description: 'The maximum number of machines that can be scheduled above the desired number of machines. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 1. Example: when this is set to 30%, the new MachineSet can be scaled up immediately when the rolling update starts, such that the total number of old and new machines do not exceed 130% of desired machines. Once old machines have been killed, new MachineSet can be scaled up further, ensuring that total number of machines running at any time during the update is at most 130% of desired machines.' + description: |- + The maximum number of machines that can be scheduled above the + desired number of machines. + Value can be an absolute number (ex: 5) or a percentage of + desired machines (ex: 10%). + This can not be 0 if MaxUnavailable is 0. + Absolute number is calculated from percentage by rounding up. + Defaults to 1. + Example: when this is set to 30%, the new MachineSet can be scaled + up immediately when the rolling update starts, such that the total + number of old and new machines do not exceed 130% of desired + machines. Once old machines have been killed, new MachineSet can + be scaled up further, ensuring that total number of machines running + at any time during the update is at most 130% of desired machines. x-kubernetes-int-or-string: true maxUnavailable: anyOf: - type: integer - type: string - description: 'The maximum number of machines that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 0. Example: when this is set to 30%, the old MachineSet can be scaled down to 70% of desired machines immediately when the rolling update starts. Once new machines are ready, old MachineSet can be scaled down further, followed by scaling up the new MachineSet, ensuring that the total number of machines available at all times during the update is at least 70% of desired machines.' + description: |- + The maximum number of machines that can be unavailable during the update. + Value can be an absolute number (ex: 5) or a percentage of desired + machines (ex: 10%). + Absolute number is calculated from percentage by rounding down. + This can not be 0 if MaxSurge is 0. + Defaults to 0. + Example: when this is set to 30%, the old MachineSet can be scaled + down to 70% of desired machines immediately when the rolling update + starts. Once new machines are ready, old MachineSet can be scaled + down further, followed by scaling up the new MachineSet, ensuring + that the total number of machines available at all times + during the update is at least 70% of desired machines. x-kubernetes-int-or-string: true type: object type: - description: Type of deployment. Allowed values are RollingUpdate and OnDelete. The default is RollingUpdate. + description: |- + Type of deployment. Allowed values are RollingUpdate and OnDelete. + The default is RollingUpdate. enum: - RollingUpdate - OnDelete type: string type: object template: - description: Template is a local struct containing a collection of templates for creation of MachineDeployment objects representing a set of worker nodes. + description: |- + Template is a local struct containing a collection of templates for creation of + MachineDeployment objects representing a set of worker nodes. properties: bootstrap: - description: Bootstrap contains the bootstrap template reference to be used for the creation of worker Machines. + description: |- + Bootstrap contains the bootstrap template reference to be used + for the creation of worker Machines. properties: ref: - description: Ref is a required reference to a custom resource offered by a provider. + description: |- + Ref is a required reference to a custom resource + offered by a provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -610,31 +1019,53 @@ spec: - ref type: object infrastructure: - description: Infrastructure contains the infrastructure template reference to be used for the creation of worker Machines. + description: |- + Infrastructure contains the infrastructure template reference to be used + for the creation of worker Machines. properties: ref: - description: Ref is a required reference to a custom resource offered by a provider. + description: |- + Ref is a required reference to a custom resource + offered by a provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -642,17 +1073,27 @@ spec: - ref type: object metadata: - description: Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment. At runtime this metadata is merged with the corresponding metadata from the topology. + description: |- + Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment. + At runtime this metadata is merged with the corresponding metadata from the topology. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object required: @@ -665,67 +1106,125 @@ spec: type: object type: array machinePools: - description: MachinePools is a list of machine pool classes that can be used to create a set of worker nodes. + description: |- + MachinePools is a list of machine pool classes that can be used to create + a set of worker nodes. items: - description: MachinePoolClass serves as a template to define a pool of worker nodes of the cluster provisioned using `ClusterClass`. + description: |- + MachinePoolClass serves as a template to define a pool of worker nodes of the cluster + provisioned using `ClusterClass`. properties: class: - description: Class denotes a type of machine pool present in the cluster, this name MUST be unique within a ClusterClass and can be referenced in the Cluster to create a managed MachinePool. + description: |- + Class denotes a type of machine pool present in the cluster, + this name MUST be unique within a ClusterClass and can be referenced + in the Cluster to create a managed MachinePool. type: string failureDomains: - description: 'FailureDomains is the list of failure domains the MachinePool should be attached to. Must match a key in the FailureDomains map stored on the cluster object. NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass.' + description: |- + FailureDomains is the list of failure domains the MachinePool should be attached to. + Must match a key in the FailureDomains map stored on the cluster object. + NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. items: type: string type: array minReadySeconds: - description: 'Minimum number of seconds for which a newly created machine pool should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass.' + description: |- + Minimum number of seconds for which a newly created machine pool should + be ready. + Defaults to 0 (machine will be considered available as soon as it + is ready) + NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. format: int32 type: integer namingStrategy: description: NamingStrategy allows changing the naming pattern used when creating the MachinePool. properties: template: - description: 'Template defines the template to use for generating the name of the MachinePool object. If not defined, it will fallback to `{{ .cluster.name }}-{{ .machinePool.topologyName }}-{{ .random }}`. If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will get concatenated with a random suffix of length 5. The templating mechanism provides the following arguments: * `.cluster.name`: The name of the cluster object. * `.random`: A random alphanumeric string, without vowels, of length 5. * `.machinePool.topologyName`: The name of the MachinePool topology (Cluster.spec.topology.workers.machinePools[].name).' + description: |- + Template defines the template to use for generating the name of the MachinePool object. + If not defined, it will fallback to `{{ .cluster.name }}-{{ .machinePool.topologyName }}-{{ .random }}`. + If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will + get concatenated with a random suffix of length 5. + The templating mechanism provides the following arguments: + * `.cluster.name`: The name of the cluster object. + * `.random`: A random alphanumeric string, without vowels, of length 5. + * `.machinePool.topologyName`: The name of the MachinePool topology (Cluster.spec.topology.workers.machinePools[].name). type: string type: object nodeDeletionTimeout: - description: 'NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine Pool is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass.' + description: |- + NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + hosts after the Machine Pool is marked for deletion. A duration of 0 will retry deletion indefinitely. + Defaults to 10 seconds. + NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. type: string nodeDrainTimeout: - description: 'NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass.' + description: |- + NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + The default value is 0, meaning that the node can be drained without any time limitations. + NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. type: string nodeVolumeDetachTimeout: - description: 'NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass.' + description: |- + NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. type: string template: - description: Template is a local struct containing a collection of templates for creation of MachinePools objects representing a pool of worker nodes. + description: |- + Template is a local struct containing a collection of templates for creation of + MachinePools objects representing a pool of worker nodes. properties: bootstrap: - description: Bootstrap contains the bootstrap template reference to be used for the creation of the Machines in the MachinePool. + description: |- + Bootstrap contains the bootstrap template reference to be used + for the creation of the Machines in the MachinePool. properties: ref: - description: Ref is a required reference to a custom resource offered by a provider. + description: |- + Ref is a required reference to a custom resource + offered by a provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -733,31 +1232,53 @@ spec: - ref type: object infrastructure: - description: Infrastructure contains the infrastructure template reference to be used for the creation of the MachinePool. + description: |- + Infrastructure contains the infrastructure template reference to be used + for the creation of the MachinePool. properties: ref: - description: Ref is a required reference to a custom resource offered by a provider. + description: |- + Ref is a required reference to a custom resource + offered by a provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -765,17 +1286,27 @@ spec: - ref type: object metadata: - description: Metadata is the metadata applied to the MachinePool. At runtime this metadata is merged with the corresponding metadata from the topology. + description: |- + Metadata is the metadata applied to the MachinePool. + At runtime this metadata is merged with the corresponding metadata from the topology. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object required: @@ -798,23 +1329,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - lastTransitionTime @@ -837,28 +1382,47 @@ spec: description: ClusterClassStatusVariableDefinition defines a variable which appears in the status of a ClusterClass. properties: from: - description: From specifies the origin of the variable definition. This will be `inline` for variables defined in the ClusterClass or the name of a patch defined in the ClusterClass for variables discovered from a DiscoverVariables runtime extensions. + description: |- + From specifies the origin of the variable definition. + This will be `inline` for variables defined in the ClusterClass or the name of a patch defined in the ClusterClass + for variables discovered from a DiscoverVariables runtime extensions. type: string required: - description: 'Required specifies if the variable is required. Note: this applies to the variable as a whole and thus the top-level object defined in the schema. If nested fields are required, this will be specified inside the schema.' + description: |- + Required specifies if the variable is required. + Note: this applies to the variable as a whole and thus the + top-level object defined in the schema. If nested fields are + required, this will be specified inside the schema. type: boolean schema: description: Schema defines the schema of the variable. properties: openAPIV3Schema: - description: OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 schema. The schema is a subset of the schema used in Kubernetes CRDs. + description: |- + OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 + schema. The schema is a subset of the schema used in + Kubernetes CRDs. properties: additionalProperties: - description: 'AdditionalProperties specifies the schema of values in a map (keys are always strings). NOTE: Can only be set if type is object. NOTE: AdditionalProperties is mutually exclusive with Properties. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible.' + description: |- + AdditionalProperties specifies the schema of values in a map (keys are always strings). + NOTE: Can only be set if type is object. + NOTE: AdditionalProperties is mutually exclusive with Properties. + NOTE: This field uses PreserveUnknownFields and Schemaless, + because recursive validation is not possible. x-kubernetes-preserve-unknown-fields: true default: - description: 'Default is the default value of the variable. NOTE: Can be set for all types.' + description: |- + Default is the default value of the variable. + NOTE: Can be set for all types. x-kubernetes-preserve-unknown-fields: true description: description: Description is a human-readable description of this variable. type: string enum: - description: 'Enum is the list of valid values of the variable. NOTE: Can be set for all types.' + description: |- + Enum is the list of valid values of the variable. + NOTE: Can be set for all types. items: x-kubernetes-preserve-unknown-fields: true type: array @@ -866,60 +1430,104 @@ spec: description: Example is an example for this variable. x-kubernetes-preserve-unknown-fields: true exclusiveMaximum: - description: 'ExclusiveMaximum specifies if the Maximum is exclusive. NOTE: Can only be set if type is integer or number.' + description: |- + ExclusiveMaximum specifies if the Maximum is exclusive. + NOTE: Can only be set if type is integer or number. type: boolean exclusiveMinimum: - description: 'ExclusiveMinimum specifies if the Minimum is exclusive. NOTE: Can only be set if type is integer or number.' + description: |- + ExclusiveMinimum specifies if the Minimum is exclusive. + NOTE: Can only be set if type is integer or number. type: boolean format: - description: 'Format is an OpenAPI v3 format string. Unknown formats are ignored. For a list of supported formats please see: (of the k8s.io/apiextensions-apiserver version we''re currently using) https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apiserver/validation/formats.go NOTE: Can only be set if type is string.' + description: |- + Format is an OpenAPI v3 format string. Unknown formats are ignored. + For a list of supported formats please see: (of the k8s.io/apiextensions-apiserver version we're currently using) + https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apiserver/validation/formats.go + NOTE: Can only be set if type is string. type: string items: - description: 'Items specifies fields of an array. NOTE: Can only be set if type is array. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible.' + description: |- + Items specifies fields of an array. + NOTE: Can only be set if type is array. + NOTE: This field uses PreserveUnknownFields and Schemaless, + because recursive validation is not possible. x-kubernetes-preserve-unknown-fields: true maxItems: - description: 'MaxItems is the max length of an array variable. NOTE: Can only be set if type is array.' + description: |- + MaxItems is the max length of an array variable. + NOTE: Can only be set if type is array. format: int64 type: integer maxLength: - description: 'MaxLength is the max length of a string variable. NOTE: Can only be set if type is string.' + description: |- + MaxLength is the max length of a string variable. + NOTE: Can only be set if type is string. format: int64 type: integer maximum: - description: 'Maximum is the maximum of an integer or number variable. If ExclusiveMaximum is false, the variable is valid if it is lower than, or equal to, the value of Maximum. If ExclusiveMaximum is true, the variable is valid if it is strictly lower than the value of Maximum. NOTE: Can only be set if type is integer or number.' + description: |- + Maximum is the maximum of an integer or number variable. + If ExclusiveMaximum is false, the variable is valid if it is lower than, or equal to, the value of Maximum. + If ExclusiveMaximum is true, the variable is valid if it is strictly lower than the value of Maximum. + NOTE: Can only be set if type is integer or number. format: int64 type: integer minItems: - description: 'MinItems is the min length of an array variable. NOTE: Can only be set if type is array.' + description: |- + MinItems is the min length of an array variable. + NOTE: Can only be set if type is array. format: int64 type: integer minLength: - description: 'MinLength is the min length of a string variable. NOTE: Can only be set if type is string.' + description: |- + MinLength is the min length of a string variable. + NOTE: Can only be set if type is string. format: int64 type: integer minimum: - description: 'Minimum is the minimum of an integer or number variable. If ExclusiveMinimum is false, the variable is valid if it is greater than, or equal to, the value of Minimum. If ExclusiveMinimum is true, the variable is valid if it is strictly greater than the value of Minimum. NOTE: Can only be set if type is integer or number.' + description: |- + Minimum is the minimum of an integer or number variable. + If ExclusiveMinimum is false, the variable is valid if it is greater than, or equal to, the value of Minimum. + If ExclusiveMinimum is true, the variable is valid if it is strictly greater than the value of Minimum. + NOTE: Can only be set if type is integer or number. format: int64 type: integer pattern: - description: 'Pattern is the regex which a string variable must match. NOTE: Can only be set if type is string.' + description: |- + Pattern is the regex which a string variable must match. + NOTE: Can only be set if type is string. type: string properties: - description: 'Properties specifies fields of an object. NOTE: Can only be set if type is object. NOTE: Properties is mutually exclusive with AdditionalProperties. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible.' + description: |- + Properties specifies fields of an object. + NOTE: Can only be set if type is object. + NOTE: Properties is mutually exclusive with AdditionalProperties. + NOTE: This field uses PreserveUnknownFields and Schemaless, + because recursive validation is not possible. x-kubernetes-preserve-unknown-fields: true required: - description: 'Required specifies which fields of an object are required. NOTE: Can only be set if type is object.' + description: |- + Required specifies which fields of an object are required. + NOTE: Can only be set if type is object. items: type: string type: array type: - description: 'Type is the type of the variable. Valid values are: object, array, string, integer, number or boolean.' + description: |- + Type is the type of the variable. + Valid values are: object, array, string, integer, number or boolean. type: string uniqueItems: - description: 'UniqueItems specifies if items in an array must be unique. NOTE: Can only be set if type is array.' + description: |- + UniqueItems specifies if items in an array must be unique. + NOTE: Can only be set if type is array. type: boolean x-kubernetes-preserve-unknown-fields: - description: XPreserveUnknownFields allows setting fields in a variable object which are not defined in the variable schema. This affects fields recursively, except if nested properties or additionalProperties are specified in the schema. + description: |- + XPreserveUnknownFields allows setting fields in a variable object + which are not defined in the variable schema. This affects fields recursively, + except if nested properties or additionalProperties are specified in the schema. type: boolean required: - type diff --git a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/clusters.yaml b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/clusters.yaml index aa2641181..8d267cd89 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/clusters.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/clusters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: clusters.cluster.x-k8s.io spec: group: cluster.x-k8s.io @@ -40,10 +40,19 @@ spec: description: Cluster is the Schema for the clusters API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -54,7 +63,9 @@ spec: description: Cluster network configuration. properties: apiServerPort: - description: APIServerPort specifies the port the API Server should bind to. Defaults to 6443. + description: |- + APIServerPort specifies the port the API Server should bind to. + Defaults to 6443. format: int32 type: integer pods: @@ -96,54 +107,94 @@ spec: - port type: object controlPlaneRef: - description: ControlPlaneRef is an optional reference to a provider-specific resource that holds the details for provisioning the Control Plane for a Cluster. + description: |- + ControlPlaneRef is an optional reference to a provider-specific resource that holds + the details for provisioning the Control Plane for a Cluster. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic infrastructureRef: - description: InfrastructureRef is a reference to a provider-specific resource that holds the details for provisioning infrastructure for a cluster in said provider. + description: |- + InfrastructureRef is a reference to a provider-specific resource that holds the details + for provisioning infrastructure for a cluster in said provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -151,7 +202,11 @@ spec: description: Paused can be used to prevent controllers from processing the Cluster and all its associated objects. type: boolean topology: - description: 'This encapsulates the topology for the cluster. NOTE: It is required to enable the ClusterTopology feature gate flag to activate managed topologies support; this feature is highly experimental, and parts of it might still be not implemented.' + description: |- + This encapsulates the topology for the cluster. + NOTE: It is required to enable the ClusterTopology + feature gate flag to activate managed topologies support; + this feature is highly experimental, and parts of it might still be not implemented. properties: class: description: The name of the ClusterClass object to create the topology. @@ -160,50 +215,100 @@ spec: description: ControlPlane describes the cluster control plane. properties: machineHealthCheck: - description: MachineHealthCheck allows to enable, disable and override the MachineHealthCheck configuration in the ClusterClass for this control plane. + description: |- + MachineHealthCheck allows to enable, disable and override + the MachineHealthCheck configuration in the ClusterClass for this control plane. properties: enable: - description: "Enable controls if a MachineHealthCheck should be created for the target machines. \n If false: No MachineHealthCheck will be created. \n If not set(default): A MachineHealthCheck will be created if it is defined here or in the associated ClusterClass. If no MachineHealthCheck is defined then none will be created. \n If true: A MachineHealthCheck is guaranteed to be created. Cluster validation will block if `enable` is true and no MachineHealthCheck definition is available." + description: |- + Enable controls if a MachineHealthCheck should be created for the target machines. + + + If false: No MachineHealthCheck will be created. + + + If not set(default): A MachineHealthCheck will be created if it is defined here or + in the associated ClusterClass. If no MachineHealthCheck is defined then none will be created. + + + If true: A MachineHealthCheck is guaranteed to be created. Cluster validation will + block if `enable` is true and no MachineHealthCheck definition is available. type: boolean maxUnhealthy: anyOf: - type: integer - type: string - description: Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by "selector" are not healthy. + description: |- + Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by + "selector" are not healthy. x-kubernetes-int-or-string: true nodeStartupTimeout: - description: Machines older than this duration without a node will be considered to have failed and will be remediated. If you wish to disable this feature, set the value explicitly to 0. + description: |- + Machines older than this duration without a node will be considered to have + failed and will be remediated. + If you wish to disable this feature, set the value explicitly to 0. type: string remediationTemplate: - description: "RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. \n This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API." + description: |- + RemediationTemplate is a reference to a remediation template + provided by an infrastructure provider. + + + This field is completely optional, when filled, the MachineHealthCheck controller + creates a new object from the template referenced and hands off remediation of the machine to + a controller that lives outside of Cluster API. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic unhealthyConditions: - description: UnhealthyConditions contains a list of the conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. + description: |- + UnhealthyConditions contains a list of the conditions that determine + whether a node is considered unhealthy. The conditions are combined in a + logical OR, i.e. if any of the conditions is met, the node is unhealthy. items: - description: UnhealthyCondition represents a Node condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a node is considered unhealthy. + description: |- + UnhealthyCondition represents a Node condition type and value with a timeout + specified as a duration. When the named condition has been in the given + status for at least the timeout value, a node is considered unhealthy. properties: status: minLength: 1 @@ -220,55 +325,105 @@ spec: type: object type: array unhealthyRange: - description: 'Any further remediation is only allowed if the number of machines selected by "selector" as not healthy is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. Eg. "[3-5]" - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy machines (and) (b) there are at most 5 unhealthy machines' + description: |- + Any further remediation is only allowed if the number of machines selected by "selector" as not healthy + is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. + Eg. "[3-5]" - This means that remediation will be allowed only when: + (a) there are at least 3 unhealthy machines (and) + (b) there are at most 5 unhealthy machines pattern: ^\[[0-9]+-[0-9]+\]$ type: string type: object metadata: - description: Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane if the ControlPlaneTemplate referenced by the ClusterClass is machine based. If not, it is applied only to the ControlPlane. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. + description: |- + Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane + if the ControlPlaneTemplate referenced by the ClusterClass is machine based. If not, it + is applied only to the ControlPlane. + At runtime this metadata is merged with the corresponding metadata from the ClusterClass. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object nodeDeletionTimeout: - description: NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. + description: |- + NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + Defaults to 10 seconds. type: string nodeDrainTimeout: - description: 'NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`' + description: |- + NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + The default value is 0, meaning that the node can be drained without any time limitations. + NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` type: string nodeVolumeDetachTimeout: - description: NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + description: |- + NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. type: string replicas: - description: Replicas is the number of control plane nodes. If the value is nil, the ControlPlane object is created without the number of Replicas and it's assumed that the control plane controller does not implement support for this field. When specified against a control plane provider that lacks support for this field, this value will be ignored. + description: |- + Replicas is the number of control plane nodes. + If the value is nil, the ControlPlane object is created without the number of Replicas + and it's assumed that the control plane controller does not implement support for this field. + When specified against a control plane provider that lacks support for this field, this value will be ignored. format: int32 type: integer type: object rolloutAfter: - description: "RolloutAfter performs a rollout of the entire cluster one component at a time, control plane first and then machine deployments. \n Deprecated: This field has no function and is going to be removed in the next apiVersion." + description: |- + RolloutAfter performs a rollout of the entire cluster one component at a time, + control plane first and then machine deployments. + + + Deprecated: This field has no function and is going to be removed in the next apiVersion. format: date-time type: string variables: - description: Variables can be used to customize the Cluster through patches. They must comply to the corresponding VariableClasses defined in the ClusterClass. + description: |- + Variables can be used to customize the Cluster through + patches. They must comply to the corresponding + VariableClasses defined in the ClusterClass. items: - description: ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a Variable definition in the ClusterClass `status` variables. + description: |- + ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a + Variable definition in the ClusterClass `status` variables. properties: definitionFrom: - description: 'DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass `.spec.patches` where the patch is external and provides external variables. This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]`' + description: |- + DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the + definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass + `.spec.patches` where the patch is external and provides external variables. + This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]` type: string name: description: Name of the variable. type: string value: - description: 'Value of the variable. Note: the value will be validated against the schema of the corresponding ClusterClassVariable from the ClusterClass. Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools, i.e. it is not possible to have no type field. Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111' + description: |- + Value of the variable. + Note: the value will be validated against the schema of the corresponding ClusterClassVariable + from the ClusterClass. + Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a + hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools, + i.e. it is not possible to have no type field. + Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111 x-kubernetes-preserve-unknown-fields: true required: - name @@ -279,64 +434,123 @@ spec: description: The Kubernetes version of the cluster. type: string workers: - description: Workers encapsulates the different constructs that form the worker nodes for the cluster. + description: |- + Workers encapsulates the different constructs that form the worker nodes + for the cluster. properties: machineDeployments: description: MachineDeployments is a list of machine deployments in the cluster. items: - description: MachineDeploymentTopology specifies the different parameters for a set of worker nodes in the topology. This set of nodes is managed by a MachineDeployment object whose lifecycle is managed by the Cluster controller. + description: |- + MachineDeploymentTopology specifies the different parameters for a set of worker nodes in the topology. + This set of nodes is managed by a MachineDeployment object whose lifecycle is managed by the Cluster controller. properties: class: - description: Class is the name of the MachineDeploymentClass used to create the set of worker nodes. This should match one of the deployment classes defined in the ClusterClass object mentioned in the `Cluster.Spec.Class` field. + description: |- + Class is the name of the MachineDeploymentClass used to create the set of worker nodes. + This should match one of the deployment classes defined in the ClusterClass object + mentioned in the `Cluster.Spec.Class` field. type: string failureDomain: - description: FailureDomain is the failure domain the machines will be created in. Must match a key in the FailureDomains map stored on the cluster object. + description: |- + FailureDomain is the failure domain the machines will be created in. + Must match a key in the FailureDomains map stored on the cluster object. type: string machineHealthCheck: - description: MachineHealthCheck allows to enable, disable and override the MachineHealthCheck configuration in the ClusterClass for this MachineDeployment. + description: |- + MachineHealthCheck allows to enable, disable and override + the MachineHealthCheck configuration in the ClusterClass for this MachineDeployment. properties: enable: - description: "Enable controls if a MachineHealthCheck should be created for the target machines. \n If false: No MachineHealthCheck will be created. \n If not set(default): A MachineHealthCheck will be created if it is defined here or in the associated ClusterClass. If no MachineHealthCheck is defined then none will be created. \n If true: A MachineHealthCheck is guaranteed to be created. Cluster validation will block if `enable` is true and no MachineHealthCheck definition is available." + description: |- + Enable controls if a MachineHealthCheck should be created for the target machines. + + + If false: No MachineHealthCheck will be created. + + + If not set(default): A MachineHealthCheck will be created if it is defined here or + in the associated ClusterClass. If no MachineHealthCheck is defined then none will be created. + + + If true: A MachineHealthCheck is guaranteed to be created. Cluster validation will + block if `enable` is true and no MachineHealthCheck definition is available. type: boolean maxUnhealthy: anyOf: - type: integer - type: string - description: Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by "selector" are not healthy. + description: |- + Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by + "selector" are not healthy. x-kubernetes-int-or-string: true nodeStartupTimeout: - description: Machines older than this duration without a node will be considered to have failed and will be remediated. If you wish to disable this feature, set the value explicitly to 0. + description: |- + Machines older than this duration without a node will be considered to have + failed and will be remediated. + If you wish to disable this feature, set the value explicitly to 0. type: string remediationTemplate: - description: "RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. \n This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API." + description: |- + RemediationTemplate is a reference to a remediation template + provided by an infrastructure provider. + + + This field is completely optional, when filled, the MachineHealthCheck controller + creates a new object from the template referenced and hands off remediation of the machine to + a controller that lives outside of Cluster API. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic unhealthyConditions: - description: UnhealthyConditions contains a list of the conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. + description: |- + UnhealthyConditions contains a list of the conditions that determine + whether a node is considered unhealthy. The conditions are combined in a + logical OR, i.e. if any of the conditions is met, the node is unhealthy. items: - description: UnhealthyCondition represents a Node condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a node is considered unhealthy. + description: |- + UnhealthyCondition represents a Node condition type and value with a timeout + specified as a duration. When the named condition has been in the given + status for at least the timeout value, a node is considered unhealthy. properties: status: minLength: 1 @@ -353,52 +567,94 @@ spec: type: object type: array unhealthyRange: - description: 'Any further remediation is only allowed if the number of machines selected by "selector" as not healthy is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. Eg. "[3-5]" - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy machines (and) (b) there are at most 5 unhealthy machines' + description: |- + Any further remediation is only allowed if the number of machines selected by "selector" as not healthy + is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. + Eg. "[3-5]" - This means that remediation will be allowed only when: + (a) there are at least 3 unhealthy machines (and) + (b) there are at most 5 unhealthy machines pattern: ^\[[0-9]+-[0-9]+\]$ type: string type: object metadata: - description: Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. + description: |- + Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment. + At runtime this metadata is merged with the corresponding metadata from the ClusterClass. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object minReadySeconds: - description: Minimum number of seconds for which a newly created machine should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) + description: |- + Minimum number of seconds for which a newly created machine should + be ready. + Defaults to 0 (machine will be considered available as soon as it + is ready) format: int32 type: integer name: - description: Name is the unique identifier for this MachineDeploymentTopology. The value is used with other unique identifiers to create a MachineDeployment's Name (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length, the values are hashed together. + description: |- + Name is the unique identifier for this MachineDeploymentTopology. + The value is used with other unique identifiers to create a MachineDeployment's Name + (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length, + the values are hashed together. type: string nodeDeletionTimeout: - description: NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. + description: |- + NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + Defaults to 10 seconds. type: string nodeDrainTimeout: - description: 'NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`' + description: |- + NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + The default value is 0, meaning that the node can be drained without any time limitations. + NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` type: string nodeVolumeDetachTimeout: - description: NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + description: |- + NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. type: string replicas: - description: Replicas is the number of worker nodes belonging to this set. If the value is nil, the MachineDeployment is created without the number of Replicas (defaulting to 1) and it's assumed that an external entity (like cluster autoscaler) is responsible for the management of this value. + description: |- + Replicas is the number of worker nodes belonging to this set. + If the value is nil, the MachineDeployment is created without the number of Replicas (defaulting to 1) + and it's assumed that an external entity (like cluster autoscaler) is responsible for the management + of this value. format: int32 type: integer strategy: - description: The deployment strategy to use to replace existing machines with new ones. + description: |- + The deployment strategy to use to replace existing machines with + new ones. properties: rollingUpdate: - description: Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. + description: |- + Rolling update config params. Present only if + MachineDeploymentStrategyType = RollingUpdate. properties: deletePolicy: - description: DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. Valid values are "Random, "Newest", "Oldest" When no value is supplied, the default DeletePolicy of MachineSet is used + description: |- + DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. + Valid values are "Random, "Newest", "Oldest" + When no value is supplied, the default DeletePolicy of MachineSet is used enum: - Random - Newest @@ -408,17 +664,44 @@ spec: anyOf: - type: integer - type: string - description: 'The maximum number of machines that can be scheduled above the desired number of machines. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 1. Example: when this is set to 30%, the new MachineSet can be scaled up immediately when the rolling update starts, such that the total number of old and new machines do not exceed 130% of desired machines. Once old machines have been killed, new MachineSet can be scaled up further, ensuring that total number of machines running at any time during the update is at most 130% of desired machines.' + description: |- + The maximum number of machines that can be scheduled above the + desired number of machines. + Value can be an absolute number (ex: 5) or a percentage of + desired machines (ex: 10%). + This can not be 0 if MaxUnavailable is 0. + Absolute number is calculated from percentage by rounding up. + Defaults to 1. + Example: when this is set to 30%, the new MachineSet can be scaled + up immediately when the rolling update starts, such that the total + number of old and new machines do not exceed 130% of desired + machines. Once old machines have been killed, new MachineSet can + be scaled up further, ensuring that total number of machines running + at any time during the update is at most 130% of desired machines. x-kubernetes-int-or-string: true maxUnavailable: anyOf: - type: integer - type: string - description: 'The maximum number of machines that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 0. Example: when this is set to 30%, the old MachineSet can be scaled down to 70% of desired machines immediately when the rolling update starts. Once new machines are ready, old MachineSet can be scaled down further, followed by scaling up the new MachineSet, ensuring that the total number of machines available at all times during the update is at least 70% of desired machines.' + description: |- + The maximum number of machines that can be unavailable during the update. + Value can be an absolute number (ex: 5) or a percentage of desired + machines (ex: 10%). + Absolute number is calculated from percentage by rounding down. + This can not be 0 if MaxSurge is 0. + Defaults to 0. + Example: when this is set to 30%, the old MachineSet can be scaled + down to 70% of desired machines immediately when the rolling update + starts. Once new machines are ready, old MachineSet can be scaled + down further, followed by scaling up the new MachineSet, ensuring + that the total number of machines available at all times + during the update is at least 70% of desired machines. x-kubernetes-int-or-string: true type: object type: - description: Type of deployment. Allowed values are RollingUpdate and OnDelete. The default is RollingUpdate. + description: |- + Type of deployment. Allowed values are RollingUpdate and OnDelete. + The default is RollingUpdate. enum: - RollingUpdate - OnDelete @@ -430,16 +713,29 @@ spec: overrides: description: Overrides can be used to override Cluster level variables. items: - description: ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a Variable definition in the ClusterClass `status` variables. + description: |- + ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a + Variable definition in the ClusterClass `status` variables. properties: definitionFrom: - description: 'DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass `.spec.patches` where the patch is external and provides external variables. This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]`' + description: |- + DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the + definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass + `.spec.patches` where the patch is external and provides external variables. + This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]` type: string name: description: Name of the variable. type: string value: - description: 'Value of the variable. Note: the value will be validated against the schema of the corresponding ClusterClassVariable from the ClusterClass. Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools, i.e. it is not possible to have no type field. Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111' + description: |- + Value of the variable. + Note: the value will be validated against the schema of the corresponding ClusterClassVariable + from the ClusterClass. + Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a + hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools, + i.e. it is not possible to have no type field. + Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111 x-kubernetes-preserve-unknown-fields: true required: - name @@ -455,48 +751,85 @@ spec: machinePools: description: MachinePools is a list of machine pools in the cluster. items: - description: MachinePoolTopology specifies the different parameters for a pool of worker nodes in the topology. This pool of nodes is managed by a MachinePool object whose lifecycle is managed by the Cluster controller. + description: |- + MachinePoolTopology specifies the different parameters for a pool of worker nodes in the topology. + This pool of nodes is managed by a MachinePool object whose lifecycle is managed by the Cluster controller. properties: class: - description: Class is the name of the MachinePoolClass used to create the pool of worker nodes. This should match one of the deployment classes defined in the ClusterClass object mentioned in the `Cluster.Spec.Class` field. + description: |- + Class is the name of the MachinePoolClass used to create the pool of worker nodes. + This should match one of the deployment classes defined in the ClusterClass object + mentioned in the `Cluster.Spec.Class` field. type: string failureDomains: - description: FailureDomains is the list of failure domains the machine pool will be created in. Must match a key in the FailureDomains map stored on the cluster object. + description: |- + FailureDomains is the list of failure domains the machine pool will be created in. + Must match a key in the FailureDomains map stored on the cluster object. items: type: string type: array metadata: - description: Metadata is the metadata applied to the MachinePool. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. + description: |- + Metadata is the metadata applied to the MachinePool. + At runtime this metadata is merged with the corresponding metadata from the ClusterClass. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object minReadySeconds: - description: Minimum number of seconds for which a newly created machine pool should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) + description: |- + Minimum number of seconds for which a newly created machine pool should + be ready. + Defaults to 0 (machine will be considered available as soon as it + is ready) format: int32 type: integer name: - description: Name is the unique identifier for this MachinePoolTopology. The value is used with other unique identifiers to create a MachinePool's Name (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length, the values are hashed together. + description: |- + Name is the unique identifier for this MachinePoolTopology. + The value is used with other unique identifiers to create a MachinePool's Name + (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length, + the values are hashed together. type: string nodeDeletionTimeout: - description: NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the MachinePool hosts after the MachinePool is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. + description: |- + NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the MachinePool + hosts after the MachinePool is marked for deletion. A duration of 0 will retry deletion indefinitely. + Defaults to 10 seconds. type: string nodeDrainTimeout: - description: 'NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`' + description: |- + NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + The default value is 0, meaning that the node can be drained without any time limitations. + NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` type: string nodeVolumeDetachTimeout: - description: NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + description: |- + NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. type: string replicas: - description: Replicas is the number of nodes belonging to this pool. If the value is nil, the MachinePool is created without the number of Replicas (defaulting to 1) and it's assumed that an external entity (like cluster autoscaler) is responsible for the management of this value. + description: |- + Replicas is the number of nodes belonging to this pool. + If the value is nil, the MachinePool is created without the number of Replicas (defaulting to 1) + and it's assumed that an external entity (like cluster autoscaler) is responsible for the management + of this value. format: int32 type: integer variables: @@ -505,16 +838,29 @@ spec: overrides: description: Overrides can be used to override Cluster level variables. items: - description: ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a Variable definition in the ClusterClass `status` variables. + description: |- + ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a + Variable definition in the ClusterClass `status` variables. properties: definitionFrom: - description: 'DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass `.spec.patches` where the patch is external and provides external variables. This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]`' + description: |- + DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the + definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass + `.spec.patches` where the patch is external and provides external variables. + This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]` type: string name: description: Name of the variable. type: string value: - description: 'Value of the variable. Note: the value will be validated against the schema of the corresponding ClusterClassVariable from the ClusterClass. Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools, i.e. it is not possible to have no type field. Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111' + description: |- + Value of the variable. + Note: the value will be validated against the schema of the corresponding ClusterClassVariable + from the ClusterClass. + Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a + hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools, + i.e. it is not possible to have no type field. + Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111 x-kubernetes-preserve-unknown-fields: true required: - name @@ -542,23 +888,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - lastTransitionTime @@ -571,7 +931,9 @@ spec: type: boolean failureDomains: additionalProperties: - description: FailureDomainSpec is the Schema for Cluster API failure domains. It allows controllers to understand how many failure domains a cluster can optionally span across. + description: |- + FailureDomainSpec is the Schema for Cluster API failure domains. + It allows controllers to understand how many failure domains a cluster can optionally span across. properties: attributes: additionalProperties: @@ -585,10 +947,15 @@ spec: description: FailureDomains is a slice of failure domain objects synced from the infrastructure provider. type: object failureMessage: - description: FailureMessage indicates that there is a fatal problem reconciling the state, and will be set to a descriptive error message. + description: |- + FailureMessage indicates that there is a fatal problem reconciling the + state, and will be set to a descriptive error message. type: string failureReason: - description: FailureReason indicates that there is a fatal problem reconciling the state, and will be set to a token value suitable for programmatic interpretation. + description: |- + FailureReason indicates that there is a fatal problem reconciling the + state, and will be set to a token value suitable for + programmatic interpretation. type: string infrastructureReady: description: InfrastructureReady is the state of the infrastructure provider. @@ -598,7 +965,9 @@ spec: format: int64 type: integer phase: - description: Phase represents the current phase of cluster actuation. E.g. Pending, Running, Terminating, Failed etc. + description: |- + Phase represents the current phase of cluster actuation. + E.g. Pending, Running, Terminating, Failed etc. type: string type: object type: object diff --git a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinedeployments.yaml b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinedeployments.yaml index 7caaa7653..011bee6f7 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinedeployments.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinedeployments.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: machinedeployments.cluster.x-k8s.io spec: group: cluster.x-k8s.io @@ -61,10 +61,19 @@ spec: description: MachineDeployment is the Schema for the machinedeployments API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -76,44 +85,89 @@ spec: minLength: 1 type: string minReadySeconds: - description: MinReadySeconds is the minimum number of seconds for which a Node for a newly created machine should be ready before considering the replica available. Defaults to 0 (machine will be considered available as soon as the Node is ready) + description: |- + MinReadySeconds is the minimum number of seconds for which a Node for a newly created machine should be ready before considering the replica available. + Defaults to 0 (machine will be considered available as soon as the Node is ready) format: int32 type: integer paused: description: Indicates that the deployment is paused. type: boolean progressDeadlineSeconds: - description: The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s. + description: |- + The maximum time in seconds for a deployment to make progress before it + is considered to be failed. The deployment controller will continue to + process failed deployments and a condition with a ProgressDeadlineExceeded + reason will be surfaced in the deployment status. Note that progress will + not be estimated during the time a deployment is paused. Defaults to 600s. format: int32 type: integer replicas: - description: "Number of desired machines. This is a pointer to distinguish between explicit zero and not specified. \n Defaults to: * if the Kubernetes autoscaler min size and max size annotations are set: - if it's a new MachineDeployment, use min size - if the replicas field of the old MachineDeployment is < min size, use min size - if the replicas field of the old MachineDeployment is > max size, use max size - if the replicas field of the old MachineDeployment is in the (min size, max size) range, keep the value from the oldMD * otherwise use 1 Note: Defaulting will be run whenever the replicas field is not set: * A new MachineDeployment is created with replicas not set. * On an existing MachineDeployment the replicas field was first set and is now unset. Those cases are especially relevant for the following Kubernetes autoscaler use cases: * A new MachineDeployment is created and replicas should be managed by the autoscaler * An existing MachineDeployment which initially wasn't controlled by the autoscaler should be later controlled by the autoscaler" + description: |- + Number of desired machines. + This is a pointer to distinguish between explicit zero and not specified. + + + Defaults to: + * if the Kubernetes autoscaler min size and max size annotations are set: + - if it's a new MachineDeployment, use min size + - if the replicas field of the old MachineDeployment is < min size, use min size + - if the replicas field of the old MachineDeployment is > max size, use max size + - if the replicas field of the old MachineDeployment is in the (min size, max size) range, keep the value from the oldMD + * otherwise use 1 + Note: Defaulting will be run whenever the replicas field is not set: + * A new MachineDeployment is created with replicas not set. + * On an existing MachineDeployment the replicas field was first set and is now unset. + Those cases are especially relevant for the following Kubernetes autoscaler use cases: + * A new MachineDeployment is created and replicas should be managed by the autoscaler + * An existing MachineDeployment which initially wasn't controlled by the autoscaler + should be later controlled by the autoscaler format: int32 type: integer revisionHistoryLimit: - description: The number of old MachineSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. + description: |- + The number of old MachineSets to retain to allow rollback. + This is a pointer to distinguish between explicit zero and not specified. + Defaults to 1. format: int32 type: integer rolloutAfter: - description: 'RolloutAfter is a field to indicate a rollout should be performed after the specified time even if no changes have been made to the MachineDeployment. Example: In the YAML the time can be specified in the RFC3339 format. To specify the rolloutAfter target as March 9, 2023, at 9 am UTC use "2023-03-09T09:00:00Z".' + description: |- + RolloutAfter is a field to indicate a rollout should be performed + after the specified time even if no changes have been made to the + MachineDeployment. + Example: In the YAML the time can be specified in the RFC3339 format. + To specify the rolloutAfter target as March 9, 2023, at 9 am UTC + use "2023-03-09T09:00:00Z". format: date-time type: string selector: - description: Label selector for machines. Existing MachineSets whose machines are selected by this will be the ones affected by this deployment. It must match the machine template's labels. + description: |- + Label selector for machines. Existing MachineSets whose machines are + selected by this will be the ones affected by this deployment. + It must match the machine template's labels. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -125,18 +179,28 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic strategy: - description: The deployment strategy to use to replace existing machines with new ones. + description: |- + The deployment strategy to use to replace existing machines with + new ones. properties: rollingUpdate: - description: Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. + description: |- + Rolling update config params. Present only if + MachineDeploymentStrategyType = RollingUpdate. properties: deletePolicy: - description: DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. Valid values are "Random, "Newest", "Oldest" When no value is supplied, the default DeletePolicy of MachineSet is used + description: |- + DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. + Valid values are "Random, "Newest", "Oldest" + When no value is supplied, the default DeletePolicy of MachineSet is used enum: - Random - Newest @@ -146,17 +210,44 @@ spec: anyOf: - type: integer - type: string - description: 'The maximum number of machines that can be scheduled above the desired number of machines. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 1. Example: when this is set to 30%, the new MachineSet can be scaled up immediately when the rolling update starts, such that the total number of old and new machines do not exceed 130% of desired machines. Once old machines have been killed, new MachineSet can be scaled up further, ensuring that total number of machines running at any time during the update is at most 130% of desired machines.' + description: |- + The maximum number of machines that can be scheduled above the + desired number of machines. + Value can be an absolute number (ex: 5) or a percentage of + desired machines (ex: 10%). + This can not be 0 if MaxUnavailable is 0. + Absolute number is calculated from percentage by rounding up. + Defaults to 1. + Example: when this is set to 30%, the new MachineSet can be scaled + up immediately when the rolling update starts, such that the total + number of old and new machines do not exceed 130% of desired + machines. Once old machines have been killed, new MachineSet can + be scaled up further, ensuring that total number of machines running + at any time during the update is at most 130% of desired machines. x-kubernetes-int-or-string: true maxUnavailable: anyOf: - type: integer - type: string - description: 'The maximum number of machines that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 0. Example: when this is set to 30%, the old MachineSet can be scaled down to 70% of desired machines immediately when the rolling update starts. Once new machines are ready, old MachineSet can be scaled down further, followed by scaling up the new MachineSet, ensuring that the total number of machines available at all times during the update is at least 70% of desired machines.' + description: |- + The maximum number of machines that can be unavailable during the update. + Value can be an absolute number (ex: 5) or a percentage of desired + machines (ex: 10%). + Absolute number is calculated from percentage by rounding down. + This can not be 0 if MaxSurge is 0. + Defaults to 0. + Example: when this is set to 30%, the old MachineSet can be scaled + down to 70% of desired machines immediately when the rolling update + starts. Once new machines are ready, old MachineSet can be scaled + down further, followed by scaling up the new MachineSet, ensuring + that the total number of machines available at all times + during the update is at least 70% of desired machines. x-kubernetes-int-or-string: true type: object type: - description: Type of deployment. Allowed values are RollingUpdate and OnDelete. The default is RollingUpdate. + description: |- + Type of deployment. Allowed values are RollingUpdate and OnDelete. + The default is RollingUpdate. enum: - RollingUpdate - OnDelete @@ -166,53 +257,91 @@ spec: description: Template describes the machines that will be created. properties: metadata: - description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' + description: |- + Standard object's metadata. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: 'Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' + description: |- + Specification of the desired behavior of the machine. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status properties: bootstrap: - description: Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + description: |- + Bootstrap is a reference to a local struct which encapsulates + fields to configure the Machine’s bootstrapping mechanism. properties: configRef: - description: ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + description: |- + ConfigRef is a reference to a bootstrap provider-specific resource + that holds configuration details. The reference is optional to + allow users/operators to specify Bootstrap.DataSecretName without + the need of a controller. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic dataSecretName: - description: DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + description: |- + DataSecretName is the name of the secret that stores the bootstrap data script. + If nil, the Machine should remain in the Pending state. type: string type: object clusterName: @@ -220,48 +349,90 @@ spec: minLength: 1 type: string failureDomain: - description: FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + description: |- + FailureDomain is the failure domain the machine will be created in. + Must match a key in the FailureDomains map stored on the cluster object. type: string infrastructureRef: - description: InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + description: |- + InfrastructureRef is a required reference to a custom resource + offered by an infrastructure provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic nodeDeletionTimeout: - description: NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. + description: |- + NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + Defaults to 10 seconds. type: string nodeDrainTimeout: - description: 'NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`' + description: |- + NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + The default value is 0, meaning that the node can be drained without any time limitations. + NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` type: string nodeVolumeDetachTimeout: - description: NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + description: |- + NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. type: string providerID: - description: ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + description: |- + ProviderID is the identification ID of the machine provided by the provider. + This field must match the provider ID as seen on the node object corresponding to this machine. + This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + and then a comparison is done to find out unregistered machines and are marked for delete. + This field will be set by the actuators and consumed by higher level entities like autoscaler that will + be interfacing with cluster-api as generic provider. type: string version: - description: Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + description: |- + Version defines the desired Kubernetes version. + This field is meant to be optionally used by bootstrap providers. type: string required: - bootstrap @@ -278,7 +449,9 @@ spec: description: MachineDeploymentStatus defines the observed state of MachineDeployment. properties: availableReplicas: - description: Total number of available machines (ready for at least minReadySeconds) targeted by this deployment. + description: |- + Total number of available machines (ready for at least minReadySeconds) + targeted by this deployment. format: int32 type: integer conditions: @@ -287,23 +460,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - lastTransitionTime @@ -323,18 +510,30 @@ spec: format: int32 type: integer replicas: - description: Total number of non-terminated machines targeted by this deployment (their labels match the selector). + description: |- + Total number of non-terminated machines targeted by this deployment + (their labels match the selector). format: int32 type: integer selector: - description: 'Selector is the same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors' + description: |- + Selector is the same as the label selector but in the string format to avoid introspection + by clients. The string will be in the same format as the query-param syntax. + More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors type: string unavailableReplicas: - description: Total number of unavailable machines targeted by this deployment. This is the total number of machines that are still required for the deployment to have 100% available capacity. They may either be machines that are running but not yet available or machines that still have not been created. + description: |- + Total number of unavailable machines targeted by this deployment. + This is the total number of machines that are still required for + the deployment to have 100% available capacity. They may either + be machines that are running but not yet available or machines + that still have not been created. format: int32 type: integer updatedReplicas: - description: Total number of non-terminated machines targeted by this deployment that have the desired template spec. + description: |- + Total number of non-terminated machines targeted by this deployment + that have the desired template spec. format: int32 type: integer type: object diff --git a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinehealthchecks.yaml b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinehealthchecks.yaml index f8a760f3c..dac7ed9a5 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinehealthchecks.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinehealthchecks.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: machinehealthchecks.cluster.x-k8s.io spec: group: cluster.x-k8s.io @@ -45,10 +45,19 @@ spec: description: MachineHealthCheck is the Schema for the machinehealthchecks API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -63,34 +72,65 @@ spec: anyOf: - type: integer - type: string - description: Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by "selector" are not healthy. + description: |- + Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by + "selector" are not healthy. x-kubernetes-int-or-string: true nodeStartupTimeout: - description: Machines older than this duration without a node will be considered to have failed and will be remediated. If not set, this value is defaulted to 10 minutes. If you wish to disable this feature, set the value explicitly to 0. + description: |- + Machines older than this duration without a node will be considered to have + failed and will be remediated. + If not set, this value is defaulted to 10 minutes. + If you wish to disable this feature, set the value explicitly to 0. type: string remediationTemplate: - description: "RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. \n This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API." + description: |- + RemediationTemplate is a reference to a remediation template + provided by an infrastructure provider. + + + This field is completely optional, when filled, the MachineHealthCheck controller + creates a new object from the template referenced and hands off remediation of the machine to + a controller that lives outside of Cluster API. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -100,16 +140,24 @@ spec: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -121,14 +169,23 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic unhealthyConditions: - description: UnhealthyConditions contains a list of the conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. + description: |- + UnhealthyConditions contains a list of the conditions that determine + whether a node is considered unhealthy. The conditions are combined in a + logical OR, i.e. if any of the conditions is met, the node is unhealthy. items: - description: UnhealthyCondition represents a Node condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a node is considered unhealthy. + description: |- + UnhealthyCondition represents a Node condition type and value with a timeout + specified as a duration. When the named condition has been in the given + status for at least the timeout value, a node is considered unhealthy. properties: status: minLength: 1 @@ -146,7 +203,12 @@ spec: minItems: 1 type: array unhealthyRange: - description: 'Any further remediation is only allowed if the number of machines selected by "selector" as not healthy is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. Eg. "[3-5]" - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy machines (and) (b) there are at most 5 unhealthy machines' + description: |- + Any further remediation is only allowed if the number of machines selected by "selector" as not healthy + is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. + Eg. "[3-5]" - This means that remediation will be allowed only when: + (a) there are at least 3 unhealthy machines (and) + (b) there are at most 5 unhealthy machines pattern: ^\[[0-9]+-[0-9]+\]$ type: string required: @@ -163,23 +225,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - lastTransitionTime @@ -202,7 +278,9 @@ spec: format: int64 type: integer remediationsAllowed: - description: RemediationsAllowed is the number of further remediations allowed by this machine health check before maxUnhealthy short circuiting will be applied + description: |- + RemediationsAllowed is the number of further remediations allowed by this machine health check before + maxUnhealthy short circuiting will be applied format: int32 minimum: 0.0 type: integer diff --git a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinepools.yaml b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinepools.yaml index 3372fd7cd..e6b2581bf 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinepools.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinepools.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: machinepools.cluster.x-k8s.io spec: group: cluster.x-k8s.io @@ -49,10 +49,19 @@ spec: description: MachinePool is the Schema for the machinepools API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -69,69 +78,116 @@ spec: type: string type: array minReadySeconds: - description: 'Minimum number of seconds for which a newly created machine instances should be ready. Defaults to 0 (machine instance will be considered available as soon as it is ready) NOTE: No logic is implemented for this field and it currently has no behaviour.' + description: |- + Minimum number of seconds for which a newly created machine instances should + be ready. + Defaults to 0 (machine instance will be considered available as soon as it + is ready) + NOTE: No logic is implemented for this field and it currently has no behaviour. format: int32 type: integer providerIDList: - description: ProviderIDList are the identification IDs of machine instances provided by the provider. This field must match the provider IDs as seen on the node objects corresponding to a machine pool's machine instances. + description: |- + ProviderIDList are the identification IDs of machine instances provided by the provider. + This field must match the provider IDs as seen on the node objects corresponding to a machine pool's machine instances. items: type: string type: array replicas: - description: Number of desired machines. Defaults to 1. This is a pointer to distinguish between explicit zero and not specified. + description: |- + Number of desired machines. Defaults to 1. + This is a pointer to distinguish between explicit zero and not specified. format: int32 type: integer template: description: Template describes the machines that will be created. properties: metadata: - description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' + description: |- + Standard object's metadata. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: 'Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' + description: |- + Specification of the desired behavior of the machine. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status properties: bootstrap: - description: Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + description: |- + Bootstrap is a reference to a local struct which encapsulates + fields to configure the Machine’s bootstrapping mechanism. properties: configRef: - description: ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + description: |- + ConfigRef is a reference to a bootstrap provider-specific resource + that holds configuration details. The reference is optional to + allow users/operators to specify Bootstrap.DataSecretName without + the need of a controller. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic dataSecretName: - description: DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + description: |- + DataSecretName is the name of the secret that stores the bootstrap data script. + If nil, the Machine should remain in the Pending state. type: string type: object clusterName: @@ -139,48 +195,90 @@ spec: minLength: 1 type: string failureDomain: - description: FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + description: |- + FailureDomain is the failure domain the machine will be created in. + Must match a key in the FailureDomains map stored on the cluster object. type: string infrastructureRef: - description: InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + description: |- + InfrastructureRef is a required reference to a custom resource + offered by an infrastructure provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic nodeDeletionTimeout: - description: NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. + description: |- + NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + Defaults to 10 seconds. type: string nodeDrainTimeout: - description: 'NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`' + description: |- + NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + The default value is 0, meaning that the node can be drained without any time limitations. + NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` type: string nodeVolumeDetachTimeout: - description: NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + description: |- + NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. type: string providerID: - description: ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + description: |- + ProviderID is the identification ID of the machine provided by the provider. + This field must match the provider ID as seen on the node object corresponding to this machine. + This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + and then a comparison is done to find out unregistered machines and are marked for delete. + This field will be set by the actuators and consumed by higher level entities like autoscaler that will + be interfacing with cluster-api as generic provider. type: string version: - description: Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + description: |- + Version defines the desired Kubernetes version. + This field is meant to be optionally used by bootstrap providers. type: string required: - bootstrap @@ -208,23 +306,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - lastTransitionTime @@ -233,10 +345,14 @@ spec: type: object type: array failureMessage: - description: FailureMessage indicates that there is a problem reconciling the state, and will be set to a descriptive error message. + description: |- + FailureMessage indicates that there is a problem reconciling the state, + and will be set to a descriptive error message. type: string failureReason: - description: FailureReason indicates that there is a problem reconciling the state, and will be set to a token value suitable for programmatic interpretation. + description: |- + FailureReason indicates that there is a problem reconciling the state, and + will be set to a token value suitable for programmatic interpretation. type: string infrastructureReady: description: InfrastructureReady is the state of the infrastructure provider. @@ -244,28 +360,63 @@ spec: nodeRefs: description: NodeRefs will point to the corresponding Nodes if it they exist. items: - description: "ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, \"must refer only to types A and B\" or \"UID not honored\" or \"name must be restricted\". Those cannot be well described when embedded. 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. \n Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 ." + description: |- + ObjectReference contains enough information to let you inspect or modify the referred object. + --- + New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. + 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. + 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular + restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". + Those cannot be well described when embedded. + 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. + 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity + during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple + and the version of the actual struct is irrelevant. + 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type + will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. + + + Instead of using this type, create a locally provided and used type that is well-focused on your reference. + For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -275,7 +426,9 @@ spec: format: int64 type: integer phase: - description: Phase represents the current phase of cluster actuation. E.g. Pending, Running, Terminating, Failed etc. + description: |- + Phase represents the current phase of cluster actuation. + E.g. Pending, Running, Terminating, Failed etc. type: string readyReplicas: description: The number of ready replicas for this MachinePool. A machine is considered ready when the node has been created and is "Ready". @@ -286,7 +439,12 @@ spec: format: int32 type: integer unavailableReplicas: - description: Total number of unavailable machine instances targeted by this machine pool. This is the total number of machine instances that are still required for the machine pool to have 100% available capacity. They may either be machine instances that are running but not yet available or machine instances that still have not been created. + description: |- + Total number of unavailable machine instances targeted by this machine pool. + This is the total number of machine instances that are still required for + the machine pool to have 100% available capacity. They may either + be machine instances that are running but not yet available or machine instances + that still have not been created. format: int32 type: integer type: object diff --git a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machines.yaml b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machines.yaml index e90c75efd..33b7a381f 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machines.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machines.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: machines.cluster.x-k8s.io spec: group: cluster.x-k8s.io @@ -48,10 +48,19 @@ spec: description: Machine is the Schema for the machines API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -59,36 +68,62 @@ spec: description: MachineSpec defines the desired state of Machine. properties: bootstrap: - description: Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + description: |- + Bootstrap is a reference to a local struct which encapsulates + fields to configure the Machine’s bootstrapping mechanism. properties: configRef: - description: ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + description: |- + ConfigRef is a reference to a bootstrap provider-specific resource + that holds configuration details. The reference is optional to + allow users/operators to specify Bootstrap.DataSecretName without + the need of a controller. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic dataSecretName: - description: DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + description: |- + DataSecretName is the name of the secret that stores the bootstrap data script. + If nil, the Machine should remain in the Pending state. type: string type: object clusterName: @@ -96,48 +131,90 @@ spec: minLength: 1 type: string failureDomain: - description: FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + description: |- + FailureDomain is the failure domain the machine will be created in. + Must match a key in the FailureDomains map stored on the cluster object. type: string infrastructureRef: - description: InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + description: |- + InfrastructureRef is a required reference to a custom resource + offered by an infrastructure provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic nodeDeletionTimeout: - description: NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. + description: |- + NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + Defaults to 10 seconds. type: string nodeDrainTimeout: - description: 'NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`' + description: |- + NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + The default value is 0, meaning that the node can be drained without any time limitations. + NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` type: string nodeVolumeDetachTimeout: - description: NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + description: |- + NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. type: string providerID: - description: ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + description: |- + ProviderID is the identification ID of the machine provided by the provider. + This field must match the provider ID as seen on the node object corresponding to this machine. + This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + and then a comparison is done to find out unregistered machines and are marked for delete. + This field will be set by the actuators and consumed by higher level entities like autoscaler that will + be interfacing with cluster-api as generic provider. type: string version: - description: Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + description: |- + Version defines the desired Kubernetes version. + This field is meant to be optionally used by bootstrap providers. type: string required: - bootstrap @@ -148,7 +225,9 @@ spec: description: MachineStatus defines the observed state of Machine. properties: addresses: - description: Addresses is a list of addresses assigned to the machine. This field is copied from the infrastructure provider reference. + description: |- + Addresses is a list of addresses assigned to the machine. + This field is copied from the infrastructure provider reference. items: description: MachineAddress contains information for the node's address. properties: @@ -167,7 +246,9 @@ spec: description: BootstrapReady is the state of the bootstrap provider. type: boolean certificatesExpiryDate: - description: CertificatesExpiryDate is the expiry date of the machine certificates. This value is only set for control plane machines. + description: |- + CertificatesExpiryDate is the expiry date of the machine certificates. + This value is only set for control plane machines. format: date-time type: string conditions: @@ -176,23 +257,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - lastTransitionTime @@ -201,10 +296,46 @@ spec: type: object type: array failureMessage: - description: "FailureMessage will be set in the event that there is a terminal problem reconciling the Machine and will contain a more verbose string suitable for logging and human consumption. \n This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. \n Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output." + description: |- + FailureMessage will be set in the event that there is a terminal problem + reconciling the Machine and will contain a more verbose string suitable + for logging and human consumption. + + + This field should not be set for transitive errors that a controller + faces that are expected to be fixed automatically over + time (like service outages), but instead indicate that something is + fundamentally wrong with the Machine's spec or the configuration of + the controller, and that manual intervention is required. Examples + of terminal errors would be invalid combinations of settings in the + spec, values that are unsupported by the controller, or the + responsible controller itself being critically misconfigured. + + + Any transient errors that occur during the reconciliation of Machines + can be added as events to the Machine object and/or logged in the + controller's output. type: string failureReason: - description: "FailureReason will be set in the event that there is a terminal problem reconciling the Machine and will contain a succinct value suitable for machine interpretation. \n This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. \n Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output." + description: |- + FailureReason will be set in the event that there is a terminal problem + reconciling the Machine and will contain a succinct value suitable + for machine interpretation. + + + This field should not be set for transitive errors that a controller + faces that are expected to be fixed automatically over + time (like service outages), but instead indicate that something is + fundamentally wrong with the Machine's spec or the configuration of + the controller, and that manual intervention is required. Examples + of terminal errors would be invalid combinations of settings in the + spec, values that are unsupported by the controller, or the + responsible controller itself being critically misconfigured. + + + Any transient errors that occur during the reconciliation of Machines + can be added as events to the Machine object and/or logged in the + controller's output. type: string infrastructureReady: description: InfrastructureReady is the state of the infrastructure provider. @@ -214,7 +345,9 @@ spec: format: date-time type: string nodeInfo: - description: 'NodeInfo is a set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info' + description: |- + NodeInfo is a set of ids/uuids to uniquely identify the node. + More info: https://kubernetes.io/docs/concepts/nodes/node/#info properties: architecture: description: The Architecture reported by the node @@ -235,7 +368,10 @@ spec: description: Kubelet Version reported by the node. type: string machineID: - description: 'MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html' + description: |- + MachineID reported by the node. For unique machine identification + in the cluster this field is preferred. Learn more from man(5) + machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html type: string operatingSystem: description: The Operating System reported by the node @@ -244,7 +380,10 @@ spec: description: OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)). type: string systemUUID: - description: SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid + description: |- + SystemUUID reported by the node. For unique machine identification + MachineID is preferred. This field is specific to Red Hat hosts + https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid type: string required: - architecture @@ -265,22 +404,40 @@ spec: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic @@ -289,7 +446,9 @@ spec: format: int64 type: integer phase: - description: Phase represents the current phase of machine actuation. E.g. Pending, Running, Terminating, Failed etc. + description: |- + Phase represents the current phase of machine actuation. + E.g. Pending, Running, Terminating, Failed etc. type: string type: object type: object diff --git a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinesets.yaml b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinesets.yaml index ab721c6ce..de037f79f 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinesets.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/cluster.x-k8s.io/v1beta1/machinesets.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: machinesets.cluster.x-k8s.io spec: group: cluster.x-k8s.io @@ -53,10 +53,19 @@ spec: description: MachineSet is the Schema for the machinesets API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -68,36 +77,70 @@ spec: minLength: 1 type: string deletePolicy: - description: DeletePolicy defines the policy used to identify nodes to delete when downscaling. Defaults to "Random". Valid values are "Random, "Newest", "Oldest" + description: |- + DeletePolicy defines the policy used to identify nodes to delete when downscaling. + Defaults to "Random". Valid values are "Random, "Newest", "Oldest" enum: - Random - Newest - Oldest type: string minReadySeconds: - description: MinReadySeconds is the minimum number of seconds for which a Node for a newly created machine should be ready before considering the replica available. Defaults to 0 (machine will be considered available as soon as the Node is ready) + description: |- + MinReadySeconds is the minimum number of seconds for which a Node for a newly created machine should be ready before considering the replica available. + Defaults to 0 (machine will be considered available as soon as the Node is ready) format: int32 type: integer replicas: - description: "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. \n Defaults to: * if the Kubernetes autoscaler min size and max size annotations are set: - if it's a new MachineSet, use min size - if the replicas field of the old MachineSet is < min size, use min size - if the replicas field of the old MachineSet is > max size, use max size - if the replicas field of the old MachineSet is in the (min size, max size) range, keep the value from the oldMS * otherwise use 1 Note: Defaulting will be run whenever the replicas field is not set: * A new MachineSet is created with replicas not set. * On an existing MachineSet the replicas field was first set and is now unset. Those cases are especially relevant for the following Kubernetes autoscaler use cases: * A new MachineSet is created and replicas should be managed by the autoscaler * An existing MachineSet which initially wasn't controlled by the autoscaler should be later controlled by the autoscaler" + description: |- + Replicas is the number of desired replicas. + This is a pointer to distinguish between explicit zero and unspecified. + + + Defaults to: + * if the Kubernetes autoscaler min size and max size annotations are set: + - if it's a new MachineSet, use min size + - if the replicas field of the old MachineSet is < min size, use min size + - if the replicas field of the old MachineSet is > max size, use max size + - if the replicas field of the old MachineSet is in the (min size, max size) range, keep the value from the oldMS + * otherwise use 1 + Note: Defaulting will be run whenever the replicas field is not set: + * A new MachineSet is created with replicas not set. + * On an existing MachineSet the replicas field was first set and is now unset. + Those cases are especially relevant for the following Kubernetes autoscaler use cases: + * A new MachineSet is created and replicas should be managed by the autoscaler + * An existing MachineSet which initially wasn't controlled by the autoscaler + should be later controlled by the autoscaler format: int32 type: integer selector: - description: 'Selector is a label query over machines that should match the replica count. Label keys and values that must match in order to be controlled by this MachineSet. It must match the machine template''s labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors' + description: |- + Selector is a label query over machines that should match the replica count. + Label keys and values that must match in order to be controlled by this MachineSet. + It must match the machine template's labels. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -109,61 +152,105 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic template: - description: Template is the object that describes the machine that will be created if insufficient replicas are detected. Object references to custom resources are treated as templates. + description: |- + Template is the object that describes the machine that will be created if + insufficient replicas are detected. + Object references to custom resources are treated as templates. properties: metadata: - description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata' + description: |- + Standard object's metadata. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object type: object spec: - description: 'Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status' + description: |- + Specification of the desired behavior of the machine. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status properties: bootstrap: - description: Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + description: |- + Bootstrap is a reference to a local struct which encapsulates + fields to configure the Machine’s bootstrapping mechanism. properties: configRef: - description: ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + description: |- + ConfigRef is a reference to a bootstrap provider-specific resource + that holds configuration details. The reference is optional to + allow users/operators to specify Bootstrap.DataSecretName without + the need of a controller. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic dataSecretName: - description: DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + description: |- + DataSecretName is the name of the secret that stores the bootstrap data script. + If nil, the Machine should remain in the Pending state. type: string type: object clusterName: @@ -171,48 +258,90 @@ spec: minLength: 1 type: string failureDomain: - description: FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + description: |- + FailureDomain is the failure domain the machine will be created in. + Must match a key in the FailureDomains map stored on the cluster object. type: string infrastructureRef: - description: InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + description: |- + InfrastructureRef is a required reference to a custom resource + offered by an infrastructure provider. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic nodeDeletionTimeout: - description: NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. + description: |- + NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + Defaults to 10 seconds. type: string nodeDrainTimeout: - description: 'NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout`' + description: |- + NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + The default value is 0, meaning that the node can be drained without any time limitations. + NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` type: string nodeVolumeDetachTimeout: - description: NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + description: |- + NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. type: string providerID: - description: ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + description: |- + ProviderID is the identification ID of the machine provided by the provider. + This field must match the provider ID as seen on the node object corresponding to this machine. + This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + and then a comparison is done to find out unregistered machines and are marked for delete. + This field will be set by the actuators and consumed by higher level entities like autoscaler that will + be interfacing with cluster-api as generic provider. type: string version: - description: Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + description: |- + Version defines the desired Kubernetes version. + This field is meant to be optionally used by bootstrap providers. type: string required: - bootstrap @@ -237,23 +366,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - lastTransitionTime @@ -264,7 +407,27 @@ spec: failureMessage: type: string failureReason: - description: "In the event that there is a terminal problem reconciling the replicas, both FailureReason and FailureMessage will be set. FailureReason will be populated with a succinct value suitable for machine interpretation, while FailureMessage will contain a more verbose string suitable for logging and human consumption. \n These fields should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the MachineTemplate's spec or the configuration of the machine controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the machine controller, or the responsible machine controller itself being critically misconfigured. \n Any transient errors that occur during the reconciliation of Machines can be added as events to the MachineSet object and/or logged in the controller's output." + description: |- + In the event that there is a terminal problem reconciling the + replicas, both FailureReason and FailureMessage will be set. FailureReason + will be populated with a succinct value suitable for machine + interpretation, while FailureMessage will contain a more verbose + string suitable for logging and human consumption. + + + These fields should not be set for transitive errors that a + controller faces that are expected to be fixed automatically over + time (like service outages), but instead indicate that something is + fundamentally wrong with the MachineTemplate's spec or the configuration of + the machine controller, and that manual intervention is required. Examples + of terminal errors would be invalid combinations of settings in the + spec, values that are unsupported by the machine controller, or the + responsible machine controller itself being critically misconfigured. + + + Any transient errors that occur during the reconciliation of Machines + can be added as events to the MachineSet object and/or logged in the + controller's output. type: string fullyLabeledReplicas: description: The number of replicas that have labels matching the labels of the machine template of the MachineSet. @@ -283,7 +446,10 @@ spec: format: int32 type: integer selector: - description: 'Selector is the same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors' + description: |- + Selector is the same as the label selector but in the string format to avoid introspection + by clients. The string will be in the same format as the query-param syntax. + More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors type: string type: object type: object diff --git a/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1alpha1/ipaddressclaims.yaml b/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1alpha1/ipaddressclaims.yaml index 6fb883598..caa2aa9ec 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1alpha1/ipaddressclaims.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1alpha1/ipaddressclaims.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: ipaddressclaims.ipam.cluster.x-k8s.io spec: group: ipam.cluster.x-k8s.io @@ -34,10 +34,19 @@ spec: description: IPAddressClaim is the Schema for the ipaddressclaim API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -48,7 +57,10 @@ spec: description: PoolRef is a reference to the pool from which an IP address should be created. properties: apiGroup: - description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + description: |- + APIGroup is the group for the resource being referenced. + If APIGroup is not specified, the specified Kind must be in the core API group. + For any other third-party types, APIGroup is required. type: string kind: description: Kind is the type of resource being referenced @@ -71,7 +83,10 @@ spec: description: AddressRef is a reference to the address that was created for this claim. 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?' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -81,23 +96,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - lastTransitionTime diff --git a/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1alpha1/ipaddresses.yaml b/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1alpha1/ipaddresses.yaml index 4d79f4520..640b1c203 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1alpha1/ipaddresses.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1alpha1/ipaddresses.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: ipaddresses.ipam.cluster.x-k8s.io spec: group: ipam.cluster.x-k8s.io @@ -38,10 +38,19 @@ spec: description: IPAddress is the Schema for the ipaddress API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -55,7 +64,10 @@ spec: description: ClaimRef is a reference to the claim this IPAddress was created for. 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?' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -66,7 +78,10 @@ spec: description: PoolRef is a reference to the pool that this IPAddress was created from. properties: apiGroup: - description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + description: |- + APIGroup is the group for the resource being referenced. + If APIGroup is not specified, the specified Kind must be in the core API group. + For any other third-party types, APIGroup is required. type: string kind: description: Kind is the type of resource being referenced diff --git a/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1beta1/ipaddressclaims.yaml b/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1beta1/ipaddressclaims.yaml index dcdfa6fa3..f9ddb6046 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1beta1/ipaddressclaims.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1beta1/ipaddressclaims.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: ipaddressclaims.ipam.cluster.x-k8s.io spec: group: ipam.cluster.x-k8s.io @@ -34,10 +34,19 @@ spec: description: IPAddressClaim is the Schema for the ipaddressclaim API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -48,7 +57,10 @@ spec: description: PoolRef is a reference to the pool from which an IP address should be created. properties: apiGroup: - description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + description: |- + APIGroup is the group for the resource being referenced. + If APIGroup is not specified, the specified Kind must be in the core API group. + For any other third-party types, APIGroup is required. type: string kind: description: Kind is the type of resource being referenced @@ -71,7 +83,10 @@ spec: description: AddressRef is a reference to the address that was created for this claim. 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?' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -81,23 +96,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - lastTransitionTime diff --git a/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1beta1/ipaddresses.yaml b/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1beta1/ipaddresses.yaml index 1dfb7cd61..bba7ec420 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1beta1/ipaddresses.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/ipam.cluster.x-k8s.io/v1beta1/ipaddresses.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: ipaddresses.ipam.cluster.x-k8s.io spec: group: ipam.cluster.x-k8s.io @@ -38,10 +38,19 @@ spec: description: IPAddress is the Schema for the ipaddress API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -55,7 +64,10 @@ spec: description: ClaimRef is a reference to the claim this IPAddress was created for. 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?' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid? type: string type: object x-kubernetes-map-type: atomic @@ -66,7 +78,10 @@ spec: description: PoolRef is a reference to the pool that this IPAddress was created from. properties: apiGroup: - description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + description: |- + APIGroup is the group for the resource being referenced. + If APIGroup is not specified, the specified Kind must be in the core API group. + For any other third-party types, APIGroup is required. type: string kind: description: Kind is the type of resource being referenced diff --git a/crd-catalog/kubernetes-sigs/cluster-api/runtime.cluster.x-k8s.io/v1alpha1/extensionconfigs.yaml b/crd-catalog/kubernetes-sigs/cluster-api/runtime.cluster.x-k8s.io/v1alpha1/extensionconfigs.yaml index 9ed1ef292..0100f9ccd 100644 --- a/crd-catalog/kubernetes-sigs/cluster-api/runtime.cluster.x-k8s.io/v1alpha1/extensionconfigs.yaml +++ b/crd-catalog/kubernetes-sigs/cluster-api/runtime.cluster.x-k8s.io/v1alpha1/extensionconfigs.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: extensionconfigs.runtime.cluster.x-k8s.io spec: group: runtime.cluster.x-k8s.io @@ -28,10 +28,19 @@ spec: description: ExtensionConfig is the Schema for the ExtensionConfig API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -46,7 +55,12 @@ spec: format: byte type: string service: - description: "Service is a reference to the Kubernetes service for the Extension server. Note: Exactly one of `url` or `service` must be specified. \n If the Extension server is running within a cluster, then you should use `service`." + description: |- + Service is a reference to the Kubernetes service for the Extension server. + Note: Exactly one of `url` or `service` must be specified. + + + If the Extension server is running within a cluster, then you should use `service`. properties: name: description: Name is the name of the service. @@ -55,10 +69,15 @@ spec: description: Namespace is the namespace of the service. type: string path: - description: Path is an optional URL path and if present may be any string permissible in a URL. If a path is set it will be used as prefix to the hook-specific path. + description: |- + Path is an optional URL path and if present may be any string permissible in + a URL. If a path is set it will be used as prefix to the hook-specific path. type: string port: - description: Port is the port on the service that's hosting the Extension server. Defaults to 443. Port should be a valid port number (1-65535, inclusive). + description: |- + Port is the port on the service that's hosting the Extension server. + Defaults to 443. + Port should be a valid port number (1-65535, inclusive). format: int32 type: integer required: @@ -66,25 +85,55 @@ spec: - namespace type: object url: - description: "URL gives the location of the Extension server, in standard URL form (`scheme://host:port/path`). Note: Exactly one of `url` or `service` must be specified. \n The scheme must be \"https\". \n The `host` should not refer to a service running in the cluster; use the `service` field instead. \n A path is optional, and if present may be any string permissible in a URL. If a path is set it will be used as prefix to the hook-specific path. \n Attempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed either." + description: |- + URL gives the location of the Extension server, in standard URL form + (`scheme://host:port/path`). + Note: Exactly one of `url` or `service` must be specified. + + + The scheme must be "https". + + + The `host` should not refer to a service running in the cluster; use + the `service` field instead. + + + A path is optional, and if present may be any string permissible in + a URL. If a path is set it will be used as prefix to the hook-specific path. + + + Attempting to use a user or basic auth e.g. "user:password@" is not + allowed. Fragments ("#...") and query parameters ("?...") are not + allowed either. type: string type: object namespaceSelector: - description: NamespaceSelector decides whether to call the hook for an object based on whether the namespace for that object matches the selector. Defaults to the empty LabelSelector, which matches all objects. + description: |- + NamespaceSelector decides whether to call the hook for an object based + on whether the namespace for that object matches the selector. + Defaults to the empty LabelSelector, which matches all objects. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -96,14 +145,20 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic settings: additionalProperties: type: string - description: 'Settings defines key value pairs to be passed to all calls to all supported RuntimeExtensions. Note: Settings can be overridden on the ClusterClass.' + description: |- + Settings defines key value pairs to be passed to all calls + to all supported RuntimeExtensions. + Note: Settings can be overridden on the ClusterClass. type: object required: - clientConfig @@ -117,23 +172,37 @@ spec: description: Condition defines an observation of a Cluster API resource operational state. properties: lastTransitionTime: - description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + Last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when + the API field changed is acceptable. format: date-time type: string message: - description: A human readable message indicating details about the transition. This field may be empty. + description: |- + A human readable message indicating details about the transition. + This field may be empty. type: string reason: - description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + description: |- + The reason for the condition's last transition in CamelCase. + The specific API may choose whether or not this field is considered a guaranteed API. + This field may not be empty. type: string severity: - description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + description: |- + Severity provides an explicit classification of Reason code, so the users or machines can immediately + understand the current situation and act accordingly. + The Severity field MUST be set only when Status=False. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: - description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + description: |- + Type of condition in CamelCase or in foo.example.com/CamelCase. + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + can be useful (see .node.status.conditions), the ability to deconflict is important. type: string required: - lastTransitionTime @@ -147,7 +216,9 @@ spec: description: ExtensionHandler specifies the details of a handler for a particular runtime hook registered by an Extension server. properties: failurePolicy: - description: FailurePolicy defines how failures in calls to the ExtensionHandler should be handled by a client. Defaults to Fail if not set. + description: |- + FailurePolicy defines how failures in calls to the ExtensionHandler should be handled by a client. + Defaults to Fail if not set. type: string name: description: Name is the unique name of the ExtensionHandler. @@ -166,7 +237,9 @@ spec: - hook type: object timeoutSeconds: - description: TimeoutSeconds defines the timeout duration for client calls to the ExtensionHandler. Defaults to 10 is not set. + description: |- + TimeoutSeconds defines the timeout duration for client calls to the ExtensionHandler. + Defaults to 10 is not set. format: int32 type: integer required: diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/circuitbreakers.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/circuitbreakers.yaml index 4fe1fc2da..d1f88392e 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/circuitbreakers.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/circuitbreakers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: circuitbreakers.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/containerpatches.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/containerpatches.yaml index 4f15ed386..c9f01df60 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/containerpatches.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/containerpatches.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: containerpatches.kuma.io spec: group: kuma.io @@ -21,10 +21,19 @@ spec: description: ContainerPatch stores a list of patches to apply to init and sidecar containers. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: type: string @@ -54,7 +63,9 @@ spec: description: Path is a jsonpatch path string. type: string value: - description: Value must be a string representing a valid json object used by replace and add operations. String has to be escaped with " to be valid a json object. + description: |- + Value must be a string representing a valid json object used + by replace and add operations. String has to be escaped with " to be valid a json object. type: string required: - op @@ -82,7 +93,9 @@ spec: description: Path is a jsonpatch path string. type: string value: - description: Value must be a string representing a valid json object used by replace and add operations. String has to be escaped with " to be valid a json object. + description: |- + Value must be a string representing a valid json object used + by replace and add operations. String has to be escaped with " to be valid a json object. type: string required: - op diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/dataplaneinsights.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/dataplaneinsights.yaml index c2c375daf..b3347cbfe 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/dataplaneinsights.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/dataplaneinsights.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: dataplaneinsights.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/dataplanes.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/dataplanes.yaml index a8d43d991..ccc876108 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/dataplanes.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/dataplanes.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: dataplanes.kuma.io spec: group: kuma.io @@ -39,13 +39,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/externalservices.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/externalservices.yaml index 14d47a75a..5965d9ddb 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/externalservices.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/externalservices.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: externalservices.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/faultinjections.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/faultinjections.yaml index 1fbbde92c..4c2c4c7da 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/faultinjections.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/faultinjections.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: faultinjections.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/healthchecks.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/healthchecks.yaml index cfe256dff..d0a072d3f 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/healthchecks.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/healthchecks.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: healthchecks.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshaccesslogs.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshaccesslogs.yaml index ae865123c..37cdf2919 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshaccesslogs.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshaccesslogs.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshaccesslogs.kuma.io spec: group: kuma.io @@ -27,10 +27,19 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -42,7 +51,9 @@ spec: items: properties: default: - description: Default is a configuration specific to the group of clients referenced in 'targetRef' + description: |- + Default is a configuration specific to the group of clients referenced in + 'targetRef' properties: backends: items: @@ -51,7 +62,9 @@ spec: description: FileBackend defines configuration for file based access logs properties: format: - description: Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + description: |- + Format of access logs. Placeholders available on + https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators properties: json: example: @@ -93,7 +106,9 @@ spec: description: Defines an OpenTelemetry logging backend. properties: attributes: - description: Attributes can contain placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + description: |- + Attributes can contain placeholders available on + https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators example: - key: mesh value: '%KUMA_MESH%' @@ -106,7 +121,11 @@ spec: type: object type: array body: - description: Body is a raw string or an OTLP any value as described at https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-body It can contain placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + description: |- + Body is a raw string or an OTLP any value as described at + https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-body + It can contain placeholders available on + https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators example: kvlistValue: values: @@ -131,7 +150,9 @@ spec: minLength: 1 type: string format: - description: Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + description: |- + Format of access logs. Placeholders available on + https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators properties: json: example: @@ -176,7 +197,9 @@ spec: type: array type: object targetRef: - description: TargetRef is a reference to the resource that represents a group of clients. + description: |- + TargetRef is a reference to the resource that represents a group of + clients. properties: kind: description: Kind of the referenced resource @@ -192,12 +215,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: @@ -205,7 +243,10 @@ spec: type: object type: array targetRef: - description: 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 in-place. + description: |- + 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 in-place. properties: kind: description: Kind of the referenced resource @@ -221,12 +262,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: @@ -234,7 +290,9 @@ spec: items: properties: default: - description: Default is a configuration specific to the group of destinations referenced in 'targetRef' + description: |- + Default is a configuration specific to the group of destinations referenced in + 'targetRef' properties: backends: items: @@ -243,7 +301,9 @@ spec: description: FileBackend defines configuration for file based access logs properties: format: - description: Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + description: |- + Format of access logs. Placeholders available on + https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators properties: json: example: @@ -285,7 +345,9 @@ spec: description: Defines an OpenTelemetry logging backend. properties: attributes: - description: Attributes can contain placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + description: |- + Attributes can contain placeholders available on + https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators example: - key: mesh value: '%KUMA_MESH%' @@ -298,7 +360,11 @@ spec: type: object type: array body: - description: Body is a raw string or an OTLP any value as described at https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-body It can contain placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + description: |- + Body is a raw string or an OTLP any value as described at + https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-body + It can contain placeholders available on + https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators example: kvlistValue: values: @@ -323,7 +389,9 @@ spec: minLength: 1 type: string format: - description: Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + description: |- + Format of access logs. Placeholders available on + https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators properties: json: example: @@ -368,7 +436,9 @@ spec: type: array type: object targetRef: - description: TargetRef is a reference to the resource that represents a group of destinations. + description: |- + TargetRef is a reference to the resource that represents a group of + destinations. properties: kind: description: Kind of the referenced resource @@ -384,12 +454,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshcircuitbreakers.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshcircuitbreakers.yaml index 89d6172d2..c745560dc 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshcircuitbreakers.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshcircuitbreakers.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshcircuitbreakers.kuma.io spec: group: kuma.io @@ -27,10 +27,19 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -42,96 +51,215 @@ spec: items: properties: default: - description: Default is a configuration specific to the group of destinations referenced in 'targetRef' + description: |- + Default is a configuration specific to the group of destinations + referenced in 'targetRef' properties: connectionLimits: - description: ConnectionLimits contains configuration of each circuit breaking limit, which when exceeded makes the circuit breaker to become open (no traffic is allowed like no current is allowed in the circuits when physical circuit breaker ir open) + description: |- + ConnectionLimits contains configuration of each circuit breaking limit, + which when exceeded makes the circuit breaker to become open (no traffic + is allowed like no current is allowed in the circuits when physical + circuit breaker ir open) properties: maxConnectionPools: - description: The maximum number of connection pools per cluster that are concurrently supported at once. Set this for clusters which create a large number of connection pools. + description: |- + The maximum number of connection pools per cluster that are concurrently + supported at once. Set this for clusters which create a large number of + connection pools. format: int32 type: integer maxConnections: - description: The maximum number of connections allowed to be made to the upstream cluster. + description: |- + The maximum number of connections allowed to be made to the upstream + cluster. format: int32 type: integer maxPendingRequests: - description: The maximum number of pending requests that are allowed to the upstream cluster. This limit is applied as a connection limit for non-HTTP traffic. + description: |- + The maximum number of pending requests that are allowed to the upstream + cluster. This limit is applied as a connection limit for non-HTTP + traffic. format: int32 type: integer maxRequests: - description: The maximum number of parallel requests that are allowed to be made to the upstream cluster. This limit does not apply to non-HTTP traffic. + description: |- + The maximum number of parallel requests that are allowed to be made + to the upstream cluster. This limit does not apply to non-HTTP traffic. format: int32 type: integer maxRetries: - description: The maximum number of parallel retries that will be allowed to the upstream cluster. + description: |- + The maximum number of parallel retries that will be allowed to + the upstream cluster. format: int32 type: integer type: object outlierDetection: - description: OutlierDetection contains the configuration of the process of dynamically determining whether some number of hosts in an upstream cluster are performing unlike the others and removing them from the healthy load balancing set. Performance might be along different axes such as consecutive failures, temporal success rate, temporal latency, etc. Outlier detection is a form of passive health checking. + description: |- + OutlierDetection contains the configuration of the process of dynamically + determining whether some number of hosts in an upstream cluster are + performing unlike the others and removing them from the healthy load + balancing set. Performance might be along different axes such as + consecutive failures, temporal success rate, temporal latency, etc. + Outlier detection is a form of passive health checking. properties: baseEjectionTime: - description: The base time that a host is ejected for. The real time is equal to the base time multiplied by the number of times the host has been ejected. + description: |- + The base time that a host is ejected for. The real time is equal to + the base time multiplied by the number of times the host has been + ejected. type: string detectors: description: Contains configuration for supported outlier detectors properties: failurePercentage: - description: Failure Percentage based outlier detection functions similarly to success rate detection, in that it relies on success rate data from each host in a cluster. However, rather than compare those values to the mean success rate of the cluster as a whole, they are compared to a flat user-configured threshold. This threshold is configured via the outlierDetection.failurePercentageThreshold field. The other configuration fields for failure percentage based detection are similar to the fields for success rate detection. As with success rate detection, detection will not be performed for a host if its request volume over the aggregation interval is less than the outlierDetection.detectors.failurePercentage.requestVolume value. Detection also will not be performed for a cluster if the number of hosts with the minimum required request volume in an interval is less than the outlierDetection.detectors.failurePercentage.minimumHosts value. + description: |- + Failure Percentage based outlier detection functions similarly to success + rate detection, in that it relies on success rate data from each host in + a cluster. However, rather than compare those values to the mean success + rate of the cluster as a whole, they are compared to a flat + user-configured threshold. This threshold is configured via the + outlierDetection.failurePercentageThreshold field. + The other configuration fields for failure percentage based detection are + similar to the fields for success rate detection. As with success rate + detection, detection will not be performed for a host if its request + volume over the aggregation interval is less than the + outlierDetection.detectors.failurePercentage.requestVolume value. + Detection also will not be performed for a cluster if the number of hosts + with the minimum required request volume in an interval is less than the + outlierDetection.detectors.failurePercentage.minimumHosts value. properties: minimumHosts: - description: The minimum number of hosts in a cluster in order to perform failure percentage-based ejection. If the total number of hosts in the cluster is less than this value, failure percentage-based ejection will not be performed. + description: |- + The minimum number of hosts in a cluster in order to perform failure + percentage-based ejection. If the total number of hosts in the cluster is + less than this value, failure percentage-based ejection will not be + performed. format: int32 type: integer requestVolume: - description: The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to perform failure percentage-based ejection for this host. If the volume is lower than this setting, failure percentage-based ejection will not be performed for this host. + description: |- + The minimum number of total requests that must be collected in one + interval (as defined by the interval duration above) to perform failure + percentage-based ejection for this host. If the volume is lower than this + setting, failure percentage-based ejection will not be performed for this + host. format: int32 type: integer threshold: - description: The failure percentage to use when determining failure percentage-based outlier detection. If the failure percentage of a given host is greater than or equal to this value, it will be ejected. + description: |- + The failure percentage to use when determining failure percentage-based + outlier detection. If the failure percentage of a given host is greater + than or equal to this value, it will be ejected. format: int32 type: integer type: object gatewayFailures: - description: In the default mode (outlierDetection.splitExternalLocalOriginErrors is false) this detection type takes into account a subset of 5xx errors, called "gateway errors" (502, 503 or 504 status code) and local origin failures, such as timeout, TCP reset etc. In split mode (outlierDetection.splitExternalLocalOriginErrors is true) this detection type takes into account a subset of 5xx errors, called "gateway errors" (502, 503 or 504 status code) and is supported only by the http router. + description: |- + In the default mode (outlierDetection.splitExternalLocalOriginErrors is + false) this detection type takes into account a subset of 5xx errors, + called "gateway errors" (502, 503 or 504 status code) and local origin + failures, such as timeout, TCP reset etc. + In split mode (outlierDetection.splitExternalLocalOriginErrors is true) + this detection type takes into account a subset of 5xx errors, called + "gateway errors" (502, 503 or 504 status code) and is supported only by + the http router. properties: consecutive: - description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs. + description: |- + The number of consecutive gateway failures (502, 503, 504 status codes) + before a consecutive gateway failure ejection occurs. format: int32 type: integer type: object localOriginFailures: - description: 'This detection type is enabled only when outlierDetection.splitExternalLocalOriginErrors is true and takes into account only locally originated errors (timeout, reset, etc). If Envoy repeatedly cannot connect to an upstream host or communication with the upstream host is repeatedly interrupted, it will be ejected. Various locally originated problems are detected: timeout, TCP reset, ICMP errors, etc. This detection type is supported by http router and tcp proxy.' + description: |- + This detection type is enabled only when + outlierDetection.splitExternalLocalOriginErrors is true and takes into + account only locally originated errors (timeout, reset, etc). + If Envoy repeatedly cannot connect to an upstream host or communication + with the upstream host is repeatedly interrupted, it will be ejected. + Various locally originated problems are detected: timeout, TCP reset, + ICMP errors, etc. This detection type is supported by http router and + tcp proxy. properties: consecutive: - description: The number of consecutive locally originated failures before ejection occurs. Parameter takes effect only when splitExternalAndLocalErrors is set to true. + description: |- + The number of consecutive locally originated failures before ejection + occurs. Parameter takes effect only when splitExternalAndLocalErrors + is set to true. format: int32 type: integer type: object successRate: - description: 'Success Rate based outlier detection aggregates success rate data from every host in a cluster. Then at given intervals ejects hosts based on statistical outlier detection. Success Rate outlier detection will not be calculated for a host if its request volume over the aggregation interval is less than the outlierDetection.detectors.successRate.requestVolume value. Moreover, detection will not be performed for a cluster if the number of hosts with the minimum required request volume in an interval is less than the outlierDetection.detectors.successRate.minimumHosts value. In the default configuration mode (outlierDetection.splitExternalLocalOriginErrors is false) this detection type takes into account all types of errors: locally and externally originated. In split mode (outlierDetection.splitExternalLocalOriginErrors is true), locally originated errors and externally originated (transaction) errors are counted and treated separately.' + description: |- + Success Rate based outlier detection aggregates success rate data from + every host in a cluster. Then at given intervals ejects hosts based on + statistical outlier detection. Success Rate outlier detection will not be + calculated for a host if its request volume over the aggregation interval + is less than the outlierDetection.detectors.successRate.requestVolume + value. + Moreover, detection will not be performed for a cluster if the number of + hosts with the minimum required request volume in an interval is less + than the outlierDetection.detectors.successRate.minimumHosts value. + In the default configuration mode + (outlierDetection.splitExternalLocalOriginErrors is false) this detection + type takes into account all types of errors: locally and externally + originated. + In split mode (outlierDetection.splitExternalLocalOriginErrors is true), + locally originated errors and externally originated (transaction) errors + are counted and treated separately. properties: minimumHosts: - description: The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. + description: |- + The number of hosts in a cluster that must have enough request volume to + detect success rate outliers. If the number of hosts is less than this + setting, outlier detection via success rate statistics is not performed + for any host in the cluster. format: int32 type: integer requestVolume: - description: The minimum number of total requests that must be collected in one interval (as defined by the interval duration configured in outlierDetection section) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. + description: |- + The minimum number of total requests that must be collected in one + interval (as defined by the interval duration configured in + outlierDetection section) to include this host in success rate based + outlier detection. If the volume is lower than this setting, outlier + detection via success rate statistics is not performed for that host. format: int32 type: integer standardDeviationFactor: anyOf: - type: integer - type: string - description: 'This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (standard_deviation * success_rate_standard_deviation_factor). Either int or decimal represented as string.' + description: |- + This factor is used to determine the ejection threshold for success rate + outlier ejection. The ejection threshold is the difference between + the mean success rate, and the product of this factor and the standard + deviation of the mean success rate: mean - (standard_deviation * + success_rate_standard_deviation_factor). + Either int or decimal represented as string. x-kubernetes-int-or-string: true type: object totalFailures: - description: 'In the default mode (outlierDetection.splitExternalAndLocalErrors is false) this detection type takes into account all generated errors: locally originated and externally originated (transaction) errors. In split mode (outlierDetection.splitExternalLocalOriginErrors is true) this detection type takes into account only externally originated (transaction) errors, ignoring locally originated errors. If an upstream host is an HTTP-server, only 5xx types of error are taken into account (see Consecutive Gateway Failure for exceptions). Properly formatted responses, even when they carry an operational error (like index not found, access denied) are not taken into account.' + description: |- + In the default mode (outlierDetection.splitExternalAndLocalErrors is + false) this detection type takes into account all generated errors: + locally originated and externally originated (transaction) errors. + In split mode (outlierDetection.splitExternalLocalOriginErrors is true) + this detection type takes into account only externally originated + (transaction) errors, ignoring locally originated errors. + If an upstream host is an HTTP-server, only 5xx types of error are taken + into account (see Consecutive Gateway Failure for exceptions). + Properly formatted responses, even when they carry an operational error + (like index not found, access denied) are not taken into account. properties: consecutive: - description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive total failure ejection occurs. + description: |- + The number of consecutive server-side error responses (for HTTP traffic, + 5xx responses; for TCP traffic, connection failures; for Redis, failure + to respond PONG; etc.) before a consecutive total failure ejection + occurs. format: int32 type: integer type: object @@ -140,19 +268,29 @@ spec: description: When set to true, outlierDetection configuration won't take any effect type: boolean interval: - description: The time interval between ejection analysis sweeps. This can result in both new ejections and hosts being returned to service. + description: |- + The time interval between ejection analysis sweeps. This can result in + both new ejections and hosts being returned to service. type: string maxEjectionPercent: - description: The maximum % of an upstream cluster that can be ejected due to outlier detection. Defaults to 10% but will eject at least one host regardless of the value. + description: |- + The maximum % of an upstream cluster that can be ejected due to outlier + detection. Defaults to 10% but will eject at least one host regardless of + the value. format: int32 type: integer splitExternalAndLocalErrors: - description: 'Determines whether to distinguish local origin failures from external errors. If set to true the following configuration parameters are taken into account: detectors.localOriginFailures.consecutive' + description: |- + Determines whether to distinguish local origin failures from external + errors. If set to true the following configuration parameters are taken + into account: detectors.localOriginFailures.consecutive type: boolean type: object type: object targetRef: - description: TargetRef is a reference to the resource that represents a group of destinations. + description: |- + TargetRef is a reference to the resource that represents a group of + destinations. properties: kind: description: Kind of the referenced resource @@ -168,12 +306,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: @@ -181,7 +334,10 @@ spec: type: object type: array targetRef: - description: 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 in place. + description: |- + 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 in place. properties: kind: description: Kind of the referenced resource @@ -197,109 +353,245 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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 the consumed services and corresponding configurations + description: |- + To list makes a match between the consumed services and corresponding + configurations items: properties: default: - description: Default is a configuration specific to the group of destinations referenced in 'targetRef' + description: |- + Default is a configuration specific to the group of destinations + referenced in 'targetRef' properties: connectionLimits: - description: ConnectionLimits contains configuration of each circuit breaking limit, which when exceeded makes the circuit breaker to become open (no traffic is allowed like no current is allowed in the circuits when physical circuit breaker ir open) + description: |- + ConnectionLimits contains configuration of each circuit breaking limit, + which when exceeded makes the circuit breaker to become open (no traffic + is allowed like no current is allowed in the circuits when physical + circuit breaker ir open) properties: maxConnectionPools: - description: The maximum number of connection pools per cluster that are concurrently supported at once. Set this for clusters which create a large number of connection pools. + description: |- + The maximum number of connection pools per cluster that are concurrently + supported at once. Set this for clusters which create a large number of + connection pools. format: int32 type: integer maxConnections: - description: The maximum number of connections allowed to be made to the upstream cluster. + description: |- + The maximum number of connections allowed to be made to the upstream + cluster. format: int32 type: integer maxPendingRequests: - description: The maximum number of pending requests that are allowed to the upstream cluster. This limit is applied as a connection limit for non-HTTP traffic. + description: |- + The maximum number of pending requests that are allowed to the upstream + cluster. This limit is applied as a connection limit for non-HTTP + traffic. format: int32 type: integer maxRequests: - description: The maximum number of parallel requests that are allowed to be made to the upstream cluster. This limit does not apply to non-HTTP traffic. + description: |- + The maximum number of parallel requests that are allowed to be made + to the upstream cluster. This limit does not apply to non-HTTP traffic. format: int32 type: integer maxRetries: - description: The maximum number of parallel retries that will be allowed to the upstream cluster. + description: |- + The maximum number of parallel retries that will be allowed to + the upstream cluster. format: int32 type: integer type: object outlierDetection: - description: OutlierDetection contains the configuration of the process of dynamically determining whether some number of hosts in an upstream cluster are performing unlike the others and removing them from the healthy load balancing set. Performance might be along different axes such as consecutive failures, temporal success rate, temporal latency, etc. Outlier detection is a form of passive health checking. + description: |- + OutlierDetection contains the configuration of the process of dynamically + determining whether some number of hosts in an upstream cluster are + performing unlike the others and removing them from the healthy load + balancing set. Performance might be along different axes such as + consecutive failures, temporal success rate, temporal latency, etc. + Outlier detection is a form of passive health checking. properties: baseEjectionTime: - description: The base time that a host is ejected for. The real time is equal to the base time multiplied by the number of times the host has been ejected. + description: |- + The base time that a host is ejected for. The real time is equal to + the base time multiplied by the number of times the host has been + ejected. type: string detectors: description: Contains configuration for supported outlier detectors properties: failurePercentage: - description: Failure Percentage based outlier detection functions similarly to success rate detection, in that it relies on success rate data from each host in a cluster. However, rather than compare those values to the mean success rate of the cluster as a whole, they are compared to a flat user-configured threshold. This threshold is configured via the outlierDetection.failurePercentageThreshold field. The other configuration fields for failure percentage based detection are similar to the fields for success rate detection. As with success rate detection, detection will not be performed for a host if its request volume over the aggregation interval is less than the outlierDetection.detectors.failurePercentage.requestVolume value. Detection also will not be performed for a cluster if the number of hosts with the minimum required request volume in an interval is less than the outlierDetection.detectors.failurePercentage.minimumHosts value. + description: |- + Failure Percentage based outlier detection functions similarly to success + rate detection, in that it relies on success rate data from each host in + a cluster. However, rather than compare those values to the mean success + rate of the cluster as a whole, they are compared to a flat + user-configured threshold. This threshold is configured via the + outlierDetection.failurePercentageThreshold field. + The other configuration fields for failure percentage based detection are + similar to the fields for success rate detection. As with success rate + detection, detection will not be performed for a host if its request + volume over the aggregation interval is less than the + outlierDetection.detectors.failurePercentage.requestVolume value. + Detection also will not be performed for a cluster if the number of hosts + with the minimum required request volume in an interval is less than the + outlierDetection.detectors.failurePercentage.minimumHosts value. properties: minimumHosts: - description: The minimum number of hosts in a cluster in order to perform failure percentage-based ejection. If the total number of hosts in the cluster is less than this value, failure percentage-based ejection will not be performed. + description: |- + The minimum number of hosts in a cluster in order to perform failure + percentage-based ejection. If the total number of hosts in the cluster is + less than this value, failure percentage-based ejection will not be + performed. format: int32 type: integer requestVolume: - description: The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to perform failure percentage-based ejection for this host. If the volume is lower than this setting, failure percentage-based ejection will not be performed for this host. + description: |- + The minimum number of total requests that must be collected in one + interval (as defined by the interval duration above) to perform failure + percentage-based ejection for this host. If the volume is lower than this + setting, failure percentage-based ejection will not be performed for this + host. format: int32 type: integer threshold: - description: The failure percentage to use when determining failure percentage-based outlier detection. If the failure percentage of a given host is greater than or equal to this value, it will be ejected. + description: |- + The failure percentage to use when determining failure percentage-based + outlier detection. If the failure percentage of a given host is greater + than or equal to this value, it will be ejected. format: int32 type: integer type: object gatewayFailures: - description: In the default mode (outlierDetection.splitExternalLocalOriginErrors is false) this detection type takes into account a subset of 5xx errors, called "gateway errors" (502, 503 or 504 status code) and local origin failures, such as timeout, TCP reset etc. In split mode (outlierDetection.splitExternalLocalOriginErrors is true) this detection type takes into account a subset of 5xx errors, called "gateway errors" (502, 503 or 504 status code) and is supported only by the http router. + description: |- + In the default mode (outlierDetection.splitExternalLocalOriginErrors is + false) this detection type takes into account a subset of 5xx errors, + called "gateway errors" (502, 503 or 504 status code) and local origin + failures, such as timeout, TCP reset etc. + In split mode (outlierDetection.splitExternalLocalOriginErrors is true) + this detection type takes into account a subset of 5xx errors, called + "gateway errors" (502, 503 or 504 status code) and is supported only by + the http router. properties: consecutive: - description: The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs. + description: |- + The number of consecutive gateway failures (502, 503, 504 status codes) + before a consecutive gateway failure ejection occurs. format: int32 type: integer type: object localOriginFailures: - description: 'This detection type is enabled only when outlierDetection.splitExternalLocalOriginErrors is true and takes into account only locally originated errors (timeout, reset, etc). If Envoy repeatedly cannot connect to an upstream host or communication with the upstream host is repeatedly interrupted, it will be ejected. Various locally originated problems are detected: timeout, TCP reset, ICMP errors, etc. This detection type is supported by http router and tcp proxy.' + description: |- + This detection type is enabled only when + outlierDetection.splitExternalLocalOriginErrors is true and takes into + account only locally originated errors (timeout, reset, etc). + If Envoy repeatedly cannot connect to an upstream host or communication + with the upstream host is repeatedly interrupted, it will be ejected. + Various locally originated problems are detected: timeout, TCP reset, + ICMP errors, etc. This detection type is supported by http router and + tcp proxy. properties: consecutive: - description: The number of consecutive locally originated failures before ejection occurs. Parameter takes effect only when splitExternalAndLocalErrors is set to true. + description: |- + The number of consecutive locally originated failures before ejection + occurs. Parameter takes effect only when splitExternalAndLocalErrors + is set to true. format: int32 type: integer type: object successRate: - description: 'Success Rate based outlier detection aggregates success rate data from every host in a cluster. Then at given intervals ejects hosts based on statistical outlier detection. Success Rate outlier detection will not be calculated for a host if its request volume over the aggregation interval is less than the outlierDetection.detectors.successRate.requestVolume value. Moreover, detection will not be performed for a cluster if the number of hosts with the minimum required request volume in an interval is less than the outlierDetection.detectors.successRate.minimumHosts value. In the default configuration mode (outlierDetection.splitExternalLocalOriginErrors is false) this detection type takes into account all types of errors: locally and externally originated. In split mode (outlierDetection.splitExternalLocalOriginErrors is true), locally originated errors and externally originated (transaction) errors are counted and treated separately.' + description: |- + Success Rate based outlier detection aggregates success rate data from + every host in a cluster. Then at given intervals ejects hosts based on + statistical outlier detection. Success Rate outlier detection will not be + calculated for a host if its request volume over the aggregation interval + is less than the outlierDetection.detectors.successRate.requestVolume + value. + Moreover, detection will not be performed for a cluster if the number of + hosts with the minimum required request volume in an interval is less + than the outlierDetection.detectors.successRate.minimumHosts value. + In the default configuration mode + (outlierDetection.splitExternalLocalOriginErrors is false) this detection + type takes into account all types of errors: locally and externally + originated. + In split mode (outlierDetection.splitExternalLocalOriginErrors is true), + locally originated errors and externally originated (transaction) errors + are counted and treated separately. properties: minimumHosts: - description: The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. + description: |- + The number of hosts in a cluster that must have enough request volume to + detect success rate outliers. If the number of hosts is less than this + setting, outlier detection via success rate statistics is not performed + for any host in the cluster. format: int32 type: integer requestVolume: - description: The minimum number of total requests that must be collected in one interval (as defined by the interval duration configured in outlierDetection section) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. + description: |- + The minimum number of total requests that must be collected in one + interval (as defined by the interval duration configured in + outlierDetection section) to include this host in success rate based + outlier detection. If the volume is lower than this setting, outlier + detection via success rate statistics is not performed for that host. format: int32 type: integer standardDeviationFactor: anyOf: - type: integer - type: string - description: 'This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (standard_deviation * success_rate_standard_deviation_factor). Either int or decimal represented as string.' + description: |- + This factor is used to determine the ejection threshold for success rate + outlier ejection. The ejection threshold is the difference between + the mean success rate, and the product of this factor and the standard + deviation of the mean success rate: mean - (standard_deviation * + success_rate_standard_deviation_factor). + Either int or decimal represented as string. x-kubernetes-int-or-string: true type: object totalFailures: - description: 'In the default mode (outlierDetection.splitExternalAndLocalErrors is false) this detection type takes into account all generated errors: locally originated and externally originated (transaction) errors. In split mode (outlierDetection.splitExternalLocalOriginErrors is true) this detection type takes into account only externally originated (transaction) errors, ignoring locally originated errors. If an upstream host is an HTTP-server, only 5xx types of error are taken into account (see Consecutive Gateway Failure for exceptions). Properly formatted responses, even when they carry an operational error (like index not found, access denied) are not taken into account.' + description: |- + In the default mode (outlierDetection.splitExternalAndLocalErrors is + false) this detection type takes into account all generated errors: + locally originated and externally originated (transaction) errors. + In split mode (outlierDetection.splitExternalLocalOriginErrors is true) + this detection type takes into account only externally originated + (transaction) errors, ignoring locally originated errors. + If an upstream host is an HTTP-server, only 5xx types of error are taken + into account (see Consecutive Gateway Failure for exceptions). + Properly formatted responses, even when they carry an operational error + (like index not found, access denied) are not taken into account. properties: consecutive: - description: The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive total failure ejection occurs. + description: |- + The number of consecutive server-side error responses (for HTTP traffic, + 5xx responses; for TCP traffic, connection failures; for Redis, failure + to respond PONG; etc.) before a consecutive total failure ejection + occurs. format: int32 type: integer type: object @@ -308,19 +600,29 @@ spec: description: When set to true, outlierDetection configuration won't take any effect type: boolean interval: - description: The time interval between ejection analysis sweeps. This can result in both new ejections and hosts being returned to service. + description: |- + The time interval between ejection analysis sweeps. This can result in + both new ejections and hosts being returned to service. type: string maxEjectionPercent: - description: The maximum % of an upstream cluster that can be ejected due to outlier detection. Defaults to 10% but will eject at least one host regardless of the value. + description: |- + The maximum % of an upstream cluster that can be ejected due to outlier + detection. Defaults to 10% but will eject at least one host regardless of + the value. format: int32 type: integer splitExternalAndLocalErrors: - description: 'Determines whether to distinguish local origin failures from external errors. If set to true the following configuration parameters are taken into account: detectors.localOriginFailures.consecutive' + description: |- + Determines whether to distinguish local origin failures from external + errors. If set to true the following configuration parameters are taken + into account: detectors.localOriginFailures.consecutive type: boolean type: object type: object targetRef: - description: TargetRef is a reference to the resource that represents a group of destinations. + description: |- + TargetRef is a reference to the resource that represents a group of + destinations. properties: kind: description: Kind of the referenced resource @@ -336,12 +638,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshes.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshes.yaml index dc9a9785a..cbdf503bd 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshes.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshes.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshes.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshfaultinjections.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshfaultinjections.yaml index 1843347d0..554f32256 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshfaultinjections.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshfaultinjections.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshfaultinjections.kuma.io spec: group: kuma.io @@ -27,10 +27,19 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -42,7 +51,9 @@ spec: items: properties: default: - description: Default is a configuration specific to the group of destinations referenced in 'targetRef' + 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. @@ -50,7 +61,10 @@ spec: 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 + 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 @@ -60,7 +74,9 @@ spec: 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. + 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 @@ -73,7 +89,9 @@ spec: 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. + 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 @@ -83,16 +101,22 @@ spec: - value type: object responseBandwidth: - description: ResponseBandwidth defines a configuration to limit the speed of responding to the requests + 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 + 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. + 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 @@ -102,7 +126,9 @@ spec: type: array type: object targetRef: - description: TargetRef is a reference to the resource that represents a group of destinations. + description: |- + TargetRef is a reference to the resource that represents a group of + destinations. properties: kind: description: Kind of the referenced resource @@ -118,12 +144,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: @@ -131,7 +172,10 @@ spec: type: object type: array targetRef: - description: 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. + description: |- + 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. properties: kind: description: Kind of the referenced resource @@ -147,12 +191,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: @@ -160,7 +219,9 @@ spec: items: properties: default: - description: Default is a configuration specific to the group of destinations referenced in 'targetRef' + 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. @@ -168,7 +229,10 @@ spec: 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 + 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 @@ -178,7 +242,9 @@ spec: 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. + 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 @@ -191,7 +257,9 @@ spec: 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. + 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 @@ -201,16 +269,22 @@ spec: - value type: object responseBandwidth: - description: ResponseBandwidth defines a configuration to limit the speed of responding to the requests + 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 + 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. + 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 @@ -220,7 +294,9 @@ spec: type: array type: object targetRef: - description: TargetRef is a reference to the resource that represents a group of destinations. + description: |- + TargetRef is a reference to the resource that represents a group of + destinations. properties: kind: description: Kind of the referenced resource @@ -236,12 +312,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgatewayconfigs.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgatewayconfigs.yaml index daffd5c18..c47b818b1 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgatewayconfigs.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgatewayconfigs.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshgatewayconfigs.kuma.io spec: group: kuma.io @@ -18,13 +18,24 @@ spec: - name: v1alpha1 schema: openAPIV3Schema: - description: MeshGatewayConfig holds the configuration of a MeshGateway. A GatewayClass can refer to a MeshGatewayConfig via parametersRef. + description: |- + MeshGatewayConfig holds the configuration of a MeshGateway. A + GatewayClass can refer to a MeshGatewayConfig via parametersRef. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -32,7 +43,9 @@ spec: description: MeshGatewayConfigSpec specifies the options available for a Kuma MeshGateway. properties: crossMesh: - description: CrossMesh specifies whether listeners configured by this gateway are cross mesh listeners. + description: |- + CrossMesh specifies whether listeners configured by this gateway are + cross mesh listeners. type: boolean podTemplate: description: PodTemplate configures the Pod owned by this config. @@ -80,20 +93,37 @@ spec: type: object replicas: default: 1 - description: Replicas is the number of dataplane proxy replicas to create. For now this is a fixed number, but in the future it could be automatically scaled based on metrics. + description: |- + Replicas is the number of dataplane proxy replicas to create. For + now this is a fixed number, but in the future it could be + automatically scaled based on metrics. format: int32 minimum: 1.0 type: integer resources: - description: Resources specifies the compute resources for the proxy container. The default can be set in the control plane config. + description: |- + Resources specifies the compute resources for the proxy container. + The default can be set in the control plane config. 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -109,7 +139,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -118,7 +150,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object serviceTemplate: @@ -148,7 +184,12 @@ spec: type: object serviceType: default: LoadBalancer - description: ServiceType specifies the type of managed Service that will be created to expose the dataplane proxies to traffic from outside the cluster. The ports to expose will be taken from the matching Gateway resource. If there is no matching Gateway, the managed Service will be deleted. + description: |- + ServiceType specifies the type of managed Service that will be + created to expose the dataplane proxies to traffic from outside + the cluster. The ports to expose will be taken from the matching Gateway + resource. If there is no matching Gateway, the managed Service will + be deleted. enum: - LoadBalancer - ClusterIP @@ -157,11 +198,17 @@ spec: tags: additionalProperties: type: string - description: Tags specifies a set of Kuma tags that are included in the MeshGatewayInstance and thus propagated to every Dataplane generated to serve the MeshGateway. These tags should include a maximum of one `kuma.io/service` tag. + description: |- + Tags specifies a set of Kuma tags that are included in the + MeshGatewayInstance and thus propagated to every Dataplane generated to + serve the MeshGateway. + These tags should include a maximum of one `kuma.io/service` tag. type: object type: object status: - description: MeshGatewayConfigStatus holds information about the status of the gateway instance. + description: |- + MeshGatewayConfigStatus holds information about the status of the gateway + instance. type: object type: object served: true diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgatewayinstances.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgatewayinstances.yaml index e66f0a6eb..9e09ed4ab 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgatewayinstances.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgatewayinstances.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshgatewayinstances.kuma.io spec: group: kuma.io @@ -18,13 +18,24 @@ spec: - name: v1alpha1 schema: openAPIV3Schema: - description: MeshGatewayInstance represents a managed instance of a dataplane proxy for a Kuma Gateway. + description: |- + MeshGatewayInstance represents a managed instance of a dataplane proxy for a Kuma + Gateway. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -77,20 +88,37 @@ spec: type: object replicas: default: 1 - description: Replicas is the number of dataplane proxy replicas to create. For now this is a fixed number, but in the future it could be automatically scaled based on metrics. + description: |- + Replicas is the number of dataplane proxy replicas to create. For + now this is a fixed number, but in the future it could be + automatically scaled based on metrics. format: int32 minimum: 1.0 type: integer resources: - description: Resources specifies the compute resources for the proxy container. The default can be set in the control plane config. + description: |- + Resources specifies the compute resources for the proxy container. + The default can be set in the control plane config. 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." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -106,7 +134,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -115,7 +145,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object serviceTemplate: @@ -145,7 +179,12 @@ spec: type: object serviceType: default: LoadBalancer - description: ServiceType specifies the type of managed Service that will be created to expose the dataplane proxies to traffic from outside the cluster. The ports to expose will be taken from the matching Gateway resource. If there is no matching Gateway, the managed Service will be deleted. + description: |- + ServiceType specifies the type of managed Service that will be + created to expose the dataplane proxies to traffic from outside + the cluster. The ports to expose will be taken from the matching Gateway + resource. If there is no matching Gateway, the managed Service will + be deleted. enum: - LoadBalancer - ClusterIP @@ -154,32 +193,50 @@ spec: tags: additionalProperties: type: string - description: Tags specifies the Kuma tags that are propagated to the managed dataplane proxies. These tags should include exactly one `kuma.io/service` tag, and should match exactly one Gateway resource. + description: |- + Tags specifies the Kuma tags that are propagated to the managed + dataplane proxies. These tags should include exactly one + `kuma.io/service` tag, and should match exactly one Gateway + resource. type: object type: object status: - description: MeshGatewayInstanceStatus holds information about the status of the gateway instance. + description: |- + MeshGatewayInstanceStatus holds information about the status of the gateway + instance. properties: conditions: description: Conditions is an array of gateway instance conditions. 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 }" + description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}" properties: lastTransitionTime: - description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: - description: message is a human readable message indicating details about the transition. This may be an empty string. + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. maxLength: 32768 type: string observedGeneration: - description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. format: int64 minimum: 0.0 type: integer reason: - description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ @@ -192,7 +249,12 @@ spec: - Unknown type: string type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -208,28 +270,54 @@ spec: - type x-kubernetes-list-type: map loadBalancer: - description: LoadBalancer contains the current status of the load-balancer, if one is present. + description: |- + LoadBalancer contains the current status of the load-balancer, + if one is present. properties: ingress: - description: Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points. + description: |- + Ingress is a list containing ingress points for the load-balancer. + Traffic intended for the service should be sent to these ingress points. items: - description: 'LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.' + description: |- + LoadBalancerIngress represents the status of a load-balancer ingress point: + traffic intended for the service should be sent to an ingress point. properties: hostname: - description: Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers) + description: |- + Hostname is set for load-balancer ingress points that are DNS based + (typically AWS load-balancers) type: string ip: - description: IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers) + description: |- + IP is set for load-balancer ingress points that are IP based + (typically GCE or OpenStack load-balancers) type: string ipMode: - description: IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified. Setting this to "VIP" indicates that traffic is delivered to the node with the destination set to the load-balancer's IP and port. Setting this to "Proxy" indicates that traffic is delivered to the node or pod with the destination set to the node's IP and node port or the pod's IP and port. Service implementations may use this information to adjust traffic routing. + description: |- + IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified. + Setting this to "VIP" indicates that traffic is delivered to the node with + the destination set to the load-balancer's IP and port. + Setting this to "Proxy" indicates that traffic is delivered to the node or pod with + the destination set to the node's IP and node port or the pod's IP and port. + Service implementations may use this information to adjust traffic routing. type: string ports: - description: Ports is a list of records of service ports If used, every port defined in the service should have an entry in it + description: |- + Ports is a list of records of service ports + If used, every port defined in the service should have an entry in it items: properties: error: - description: 'Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use CamelCase names - cloud provider specific error values must have names that comply with the format foo.example.com/CamelCase. --- The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)' + description: |- + Error is to record the problem with the service port + The format of the error shall comply with the following rules: + - built-in error values shall be specified in this file and those shall use + CamelCase names + - cloud provider specific error values must have names that comply with the + format foo.example.com/CamelCase. + --- + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -239,7 +327,9 @@ spec: type: integer protocol: default: TCP - description: 'Protocol is the protocol of the service port of which status is recorded here The supported values are: "TCP", "UDP", "SCTP"' + description: |- + Protocol is the protocol of the service port of which status is recorded here + The supported values are: "TCP", "UDP", "SCTP" type: string required: - port diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgatewayroutes.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgatewayroutes.yaml index cefa586d0..70549f7bd 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgatewayroutes.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgatewayroutes.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshgatewayroutes.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgateways.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgateways.yaml index 645bcba4f..873d5698d 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgateways.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshgateways.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshgateways.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshhealthchecks.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshhealthchecks.yaml index 36a2700f7..3ec9b7eff 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshhealthchecks.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshhealthchecks.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshhealthchecks.kuma.io spec: group: kuma.io @@ -27,10 +27,19 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -38,7 +47,10 @@ spec: description: Spec is the specification of the Kuma MeshHealthCheck resource. properties: targetRef: - description: 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. + description: |- + 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. properties: kind: description: Kind of the referenced resource @@ -54,12 +66,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: @@ -67,22 +94,37 @@ spec: items: properties: default: - description: Default is a configuration specific to the group of destinations referenced in 'targetRef' + description: |- + Default is a configuration specific to the group of destinations referenced in + 'targetRef' properties: alwaysLogHealthCheckFailures: - description: If set to true, health check failure events will always be logged. If set to false, only the initial health check failure event will be logged. The default value is false. + description: |- + If set to true, health check failure events will always be logged. If set + to false, only the initial health check failure event will be logged. The + default value is false. type: boolean eventLogPath: - description: Specifies the path to the file where Envoy can log health check events. If empty, no event log will be written. + description: |- + Specifies the path to the file where Envoy can log health check events. + If empty, no event log will be written. type: string failTrafficOnPanic: - description: If set to true, Envoy will not consider any hosts when the cluster is in 'panic mode'. Instead, the cluster will fail all requests as if all hosts are unhealthy. This can help avoid potentially overwhelming a failing service. + description: |- + If set to true, Envoy will not consider any hosts when the cluster is in + 'panic mode'. Instead, the cluster will fail all requests as if all hosts + are unhealthy. This can help avoid potentially overwhelming a failing + service. type: boolean grpc: - description: GrpcHealthCheck defines gRPC configuration which will instruct the service the health check will be made for is a gRPC service. + description: |- + GrpcHealthCheck defines gRPC configuration which will instruct the service + the health check will be made for is a gRPC service. properties: authority: - description: The value of the :authority header in the gRPC health check request, by default name of the cluster this health check is associated with + description: |- + The value of the :authority header in the gRPC health check request, + by default name of the cluster this health check is associated with type: string disabled: description: If true the GrpcHealthCheck is disabled @@ -95,7 +137,10 @@ spec: anyOf: - type: integer - type: string - description: Allows to configure panic threshold for Envoy cluster. If not specified, the default is 50%. To disable panic mode, set to 0%. Either int or decimal represented as string. + description: |- + Allows to configure panic threshold for Envoy cluster. If not specified, + the default is 50%. To disable panic mode, set to 0%. + Either int or decimal represented as string. x-kubernetes-int-or-string: true healthyThreshold: default: 1 @@ -103,7 +148,9 @@ spec: format: int32 type: integer http: - description: HttpHealthCheck defines HTTP configuration which will instruct the service the health check will be made for is an HTTP service. + description: |- + HttpHealthCheck defines HTTP configuration which will instruct the service + the health check will be made for is an HTTP service. properties: disabled: description: If true the HttpHealthCheck is disabled @@ -116,10 +163,14 @@ spec: type: array path: default: / - description: The HTTP path which will be requested during the health check (ie. /health) + description: |- + The HTTP path which will be requested during the health check + (ie. /health) type: string requestHeadersToAdd: - description: The list of HTTP headers which should be added to each health check request + description: |- + The list of HTTP headers which should be added to each health check + request properties: add: items: @@ -162,33 +213,56 @@ spec: type: object type: object initialJitter: - description: If specified, Envoy will start health checking after a random time in ms between 0 and initialJitter. This only applies to the first health check. + description: |- + If specified, Envoy will start health checking after a random time in + ms between 0 and initialJitter. This only applies to the first health + check. type: string interval: default: 1m description: Interval between consecutive health checks. type: string intervalJitter: - description: If specified, during every interval Envoy will add IntervalJitter to the wait time. + description: |- + If specified, during every interval Envoy will add IntervalJitter to the + wait time. type: string intervalJitterPercent: - description: If specified, during every interval Envoy will add IntervalJitter * IntervalJitterPercent / 100 to the wait time. If IntervalJitter and IntervalJitterPercent are both set, both of them will be used to increase the wait time. + description: |- + If specified, during every interval Envoy will add IntervalJitter * + IntervalJitterPercent / 100 to the wait time. If IntervalJitter and + IntervalJitterPercent are both set, both of them will be used to + increase the wait time. format: int32 type: integer noTrafficInterval: - description: The "no traffic interval" is a special health check interval that is used when a cluster has never had traffic routed to it. This lower interval allows cluster information to be kept up to date, without sending a potentially large amount of active health checking traffic for no reason. Once a cluster has been used for traffic routing, Envoy will shift back to using the standard health check interval that is defined. Note that this interval takes precedence over any other. The default value for "no traffic interval" is 60 seconds. + description: |- + The "no traffic interval" is a special health check interval that is used + when a cluster has never had traffic routed to it. This lower interval + allows cluster information to be kept up to date, without sending a + potentially large amount of active health checking traffic for no reason. + Once a cluster has been used for traffic routing, Envoy will shift back + to using the standard health check interval that is defined. Note that + this interval takes precedence over any other. The default value for "no + traffic interval" is 60 seconds. type: string reuseConnection: description: Reuse health check connection between health checks. Default is true. type: boolean tcp: - description: TcpHealthCheck defines configuration for specifying bytes to send and expected response during the health check + description: |- + TcpHealthCheck defines configuration for specifying bytes to send and + expected response during the health check properties: disabled: description: If true the TcpHealthCheck is disabled type: boolean receive: - description: List of Base64 encoded blocks of strings expected as a response. When checking the response, "fuzzy" matching is performed such that each block must be found, and in the order specified, but not necessarily contiguous. If not provided or empty, checks will be performed as "connect only" and be marked as successful when TCP connection is successfully established. + description: |- + List of Base64 encoded blocks of strings expected as a response. When checking the response, + "fuzzy" matching is performed such that each block must be found, and + in the order specified, but not necessarily contiguous. + If not provided or empty, checks will be performed as "connect only" and be marked as successful when TCP connection is successfully established. items: type: string type: array @@ -202,12 +276,16 @@ spec: type: string unhealthyThreshold: default: 5 - description: Number of consecutive unhealthy checks before considering a host unhealthy. + description: |- + Number of consecutive unhealthy checks before considering a host + unhealthy. format: int32 type: integer type: object targetRef: - description: TargetRef is a reference to the resource that represents a group of destinations. + description: |- + TargetRef is a reference to the resource that represents a group of + destinations. properties: kind: description: Kind of the referenced resource @@ -223,12 +301,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshhttproutes.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshhttproutes.yaml index 75e345097..428790887 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshhttproutes.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshhttproutes.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshhttproutes.kuma.io spec: group: kuma.io @@ -27,10 +27,19 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -38,7 +47,10 @@ spec: description: Spec is the specification of the Kuma MeshHTTPRoute resource. properties: targetRef: - description: 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. + description: |- + 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. properties: kind: description: Kind of the referenced resource @@ -54,12 +66,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: @@ -67,16 +94,24 @@ spec: items: properties: hostnames: - description: Hostnames is only valid when targeting MeshGateway and limits the effects of the rules to requests to this hostname. Given hostnames must intersect with the hostname of the listeners the route attaches to. + description: |- + Hostnames is only valid when targeting MeshGateway and limits the + effects of the rules to requests to this hostname. + Given hostnames must intersect with the hostname of the listeners the + route attaches to. items: type: string type: array rules: - description: Rules contains the routing rules applies to a combination of top-level targetRef and the targetRef in this entry. + description: |- + Rules contains the routing rules applies to a combination of top-level + targetRef and the targetRef in this entry. items: properties: default: - description: Default holds routing rules that can be merged with rules from other policies. + description: |- + Default holds routing rules that can be merged with rules from other + policies. properties: backendRefs: items: @@ -96,12 +131,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + description: |- + Tags used to select a subset of proxies by tags. Can only be used with kinds + `MeshSubset` and `MeshServiceSubset` type: object weight: default: 1 @@ -113,7 +163,10 @@ spec: items: properties: requestHeaderModifier: - description: Only one action is supported per header name. Configuration to set or add multiple values for a header must use RFC 7230 header value formatting, separating each value with a comma. + description: |- + Only one action is supported per header name. + Configuration to set or add multiple values for a header must use RFC 7230 + header value formatting, separating each value with a comma. properties: add: items: @@ -178,19 +231,36 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + description: |- + Tags used to select a subset of proxies by tags. Can only be used with kinds + `MeshSubset` and `MeshServiceSubset` type: object type: object percentage: anyOf: - type: integer - type: string - description: Percentage of requests to mirror. If not specified, all requests to the target cluster will be mirrored. + description: |- + Percentage of requests to mirror. If not specified, all requests + to the target cluster will be mirrored. x-kubernetes-int-or-string: true required: - backendRef @@ -198,13 +268,24 @@ spec: requestRedirect: properties: hostname: - description: "PreciseHostname is the fully qualified domain name of a network host. This matches the RFC 1123 definition of a hostname with 1 notable exception that numeric IP addresses are not allowed. \n Note that as per RFC1035 and RFC1123, a *label* must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed." + description: |- + PreciseHostname is the fully qualified domain name of a network host. This + matches the RFC 1123 definition of a hostname with 1 notable exception that + numeric IP addresses are not allowed. + + + Note that as per RFC1035 and RFC1123, a *label* must consist of lower case + alphanumeric characters or '-', and must start and end with an alphanumeric + character. No other punctuation is allowed. maxLength: 253 minLength: 1 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ type: string path: - description: Path defines parameters used to modify the path of the incoming request. The modified path is then used to construct the location header. When empty, the request path is used as-is. + description: |- + Path defines parameters used to modify the path of the incoming request. + The modified path is then used to construct the location header. + When empty, the request path is used as-is. properties: replaceFullPath: type: string @@ -219,7 +300,10 @@ spec: - type type: object port: - description: Port is the port to be used in the value of the `Location` header in the response. When empty, port (if specified) of the request is used. + description: |- + Port is the port to be used in the value of the `Location` + header in the response. + When empty, port (if specified) of the request is used. format: int32 maximum: 65535.0 minimum: 1.0 @@ -241,7 +325,10 @@ spec: type: integer type: object responseHeaderModifier: - description: Only one action is supported per header name. Configuration to set or add multiple values for a header must use RFC 7230 header value formatting, separating each value with a comma. + description: |- + Only one action is supported per header name. + Configuration to set or add multiple values for a header must use RFC 7230 + header value formatting, separating each value with a comma. properties: add: items: @@ -298,7 +385,9 @@ spec: urlRewrite: properties: hostToBackendHostname: - description: HostToBackendHostname rewrites the hostname to the hostname of the upstream host. This option is only available when targeting MeshGateways. + description: |- + HostToBackendHostname rewrites the hostname to the hostname of the + upstream host. This option is only available when targeting MeshGateways. type: boolean hostname: description: Hostname is the value to be used to replace the host header value during forwarding. @@ -328,15 +417,21 @@ spec: type: array type: object matches: - description: Matches describes how to match HTTP requests this rule should be applied to. + description: |- + Matches describes how to match HTTP requests this rule should be applied + to. items: properties: headers: items: - description: HeaderMatch describes how to select an HTTP route by matching HTTP request headers. + description: |- + HeaderMatch describes how to select an HTTP route by matching HTTP request + headers. properties: name: - description: Name is the name of the HTTP Header to be matched. Name MUST be lower case as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2). + description: |- + Name is the name of the HTTP Header to be matched. Name MUST be lower case + as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2). maxLength: 256 minLength: 1 pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$ @@ -379,7 +474,9 @@ spec: - RegularExpression type: string value: - description: Exact or prefix matches must be an absolute path. A prefix matches only if separated by a slash or the entire path. + description: |- + Exact or prefix matches must be an absolute path. A prefix matches only + if separated by a slash or the entire path. minLength: 1 type: string required: @@ -387,7 +484,9 @@ spec: - value type: object queryParams: - description: QueryParams matches based on HTTP URL query parameters. Multiple matches are ANDed together such that all listed matches must succeed. + description: |- + QueryParams matches based on HTTP URL query parameters. Multiple matches + are ANDed together such that all listed matches must succeed. items: properties: name: @@ -415,7 +514,9 @@ spec: type: object type: array targetRef: - description: TargetRef is a reference to the resource that represents a group of request destinations. + description: |- + TargetRef is a reference to the resource that represents a group of + request destinations. properties: kind: description: Kind of the referenced resource @@ -431,12 +532,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + description: |- + Tags used to select a subset of proxies by tags. Can only be used with kinds + `MeshSubset` and `MeshServiceSubset` type: object type: object type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshinsights.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshinsights.yaml index de86775be..1cdaca6d6 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshinsights.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshinsights.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshinsights.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshloadbalancingstrategies.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshloadbalancingstrategies.yaml index e93f2f6f3..22e1b4d39 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshloadbalancingstrategies.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshloadbalancingstrategies.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshloadbalancingstrategies.kuma.io spec: group: kuma.io @@ -27,10 +27,19 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -38,7 +47,10 @@ spec: description: Spec is the specification of the Kuma MeshLoadBalancingStrategy resource. properties: targetRef: - description: 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. + description: |- + 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. properties: kind: description: Kind of the referenced resource @@ -54,12 +66,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: @@ -67,31 +94,50 @@ spec: items: properties: default: - description: Default is a configuration specific to the group of destinations referenced in 'targetRef' + description: |- + Default is a configuration specific to the group of destinations referenced in + 'targetRef' properties: loadBalancer: description: LoadBalancer allows to specify load balancing algorithm. properties: leastRequest: - description: LeastRequest selects N random available hosts as specified in 'choiceCount' (2 by default) and picks the host which has the fewest active requests + description: |- + LeastRequest selects N random available hosts as specified in 'choiceCount' (2 by default) + and picks the host which has the fewest active requests properties: activeRequestBias: anyOf: - type: integer - type: string - description: ActiveRequestBias refers to dynamic weights applied when hosts have varying load balancing weights. A higher value here aggressively reduces the weight of endpoints that are currently handling active requests. In essence, the higher the ActiveRequestBias value, the more forcefully it reduces the load balancing weight of endpoints that are actively serving requests. + description: |- + ActiveRequestBias refers to dynamic weights applied when hosts have varying load + balancing weights. A higher value here aggressively reduces the weight of endpoints + that are currently handling active requests. In essence, the higher the ActiveRequestBias + value, the more forcefully it reduces the load balancing weight of endpoints that are + actively serving requests. x-kubernetes-int-or-string: true choiceCount: - description: ChoiceCount is the number of random healthy hosts from which the host with the fewest active requests will be chosen. Defaults to 2 so that Envoy performs two-choice selection if the field is not set. + description: |- + ChoiceCount is the number of random healthy hosts from which the host with + the fewest active requests will be chosen. Defaults to 2 so that Envoy performs + two-choice selection if the field is not set. format: int32 minimum: 2.0 type: integer type: object maglev: - description: Maglev implements consistent hashing to upstream hosts. Maglev can be used as a drop in replacement for the ring hash load balancer any place in which consistent hashing is desired. + description: |- + Maglev implements consistent hashing to upstream hosts. Maglev can be used as + a drop in replacement for the ring hash load balancer any place in which + consistent hashing is desired. properties: hashPolicies: - description: HashPolicies specify a list of request/connection properties that are used to calculate a hash. These hash policies are executed in the specified order. If a hash policy has the “terminal” attribute set to true, and there is already a hash generated, the hash is returned immediately, ignoring the rest of the hash policy list. + description: |- + HashPolicies specify a list of request/connection properties that are used to calculate a hash. + These hash policies are executed in the specified order. If a hash policy has the “terminal” attribute + set to true, and there is already a hash generated, the hash is returned immediately, + ignoring the rest of the hash policy list. items: properties: connection: @@ -118,7 +164,10 @@ spec: filterState: properties: key: - description: The name of the Object in the per-request filterState, which is an Envoy::Hashable object. If there is no data associated with the key, or the stored object is not Envoy::Hashable, no hash will be produced. + description: |- + The name of the Object in the per-request filterState, which is + an Envoy::Hashable object. If there is no data associated with the key, + or the stored object is not Envoy::Hashable, no hash will be produced. minLength: 1 type: string required: @@ -136,14 +185,21 @@ spec: queryParameter: properties: name: - description: The name of the URL query parameter that will be used to obtain the hash key. If the parameter is not present, no hash will be produced. Query parameter names are case-sensitive. + description: |- + The name of the URL query parameter that will be used to obtain the hash key. + If the parameter is not present, no hash will be produced. Query parameter names + are case-sensitive. minLength: 1 type: string required: - name type: object terminal: - description: 'Terminal is a flag that short-circuits the hash computing. This field provides a ‘fallback’ style of configuration: “if a terminal policy doesn’t work, fallback to rest of the policy list”, it saves time when the terminal policy works. If true, and there is already a hash computed, ignore rest of the list of hash polices.' + description: |- + Terminal is a flag that short-circuits the hash computing. This field provides + a ‘fallback’ style of configuration: “if a terminal policy doesn’t work, fallback + to rest of the policy list”, it saves time when the terminal policy works. + If true, and there is already a hash computed, ignore rest of the list of hash polices. type: boolean type: enum: @@ -158,26 +214,45 @@ spec: type: object type: array tableSize: - description: The table size for Maglev hashing. Maglev aims for “minimal disruption” rather than an absolute guarantee. Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same upstream as it was before. Increasing the table size reduces the amount of disruption. The table size must be prime number limited to 5000011. If it is not specified, the default is 65537. + description: |- + The table size for Maglev hashing. Maglev aims for “minimal disruption” + rather than an absolute guarantee. Minimal disruption means that when + the set of upstream hosts change, a connection will likely be sent + to the same upstream as it was before. Increasing the table size reduces + the amount of disruption. The table size must be prime number limited to 5000011. + If it is not specified, the default is 65537. format: int32 maximum: 5000011.0 minimum: 1.0 type: integer type: object random: - description: Random selects a random available host. The random load balancer generally performs better than round-robin if no health checking policy is configured. Random selection avoids bias towards the host in the set that comes after a failed host. + description: |- + Random selects a random available host. The random load balancer generally + performs better than round-robin if no health checking policy is configured. + Random selection avoids bias towards the host in the set that comes after a failed host. type: object ringHash: - description: RingHash implements consistent hashing to upstream hosts. Each host is mapped onto a circle (the “ring”) by hashing its address; each request is then routed to a host by hashing some property of the request, and finding the nearest corresponding host clockwise around the ring. + description: |- + RingHash implements consistent hashing to upstream hosts. Each host is mapped + onto a circle (the “ring”) by hashing its address; each request is then routed + to a host by hashing some property of the request, and finding the nearest + corresponding host clockwise around the ring. properties: hashFunction: - description: HashFunction is a function used to hash hosts onto the ketama ring. The value defaults to XX_HASH. Available values – XX_HASH, MURMUR_HASH_2. + description: |- + HashFunction is a function used to hash hosts onto the ketama ring. + The value defaults to XX_HASH. Available values – XX_HASH, MURMUR_HASH_2. enum: - XXHash - MurmurHash2 type: string hashPolicies: - description: HashPolicies specify a list of request/connection properties that are used to calculate a hash. These hash policies are executed in the specified order. If a hash policy has the “terminal” attribute set to true, and there is already a hash generated, the hash is returned immediately, ignoring the rest of the hash policy list. + description: |- + HashPolicies specify a list of request/connection properties that are used to calculate a hash. + These hash policies are executed in the specified order. If a hash policy has the “terminal” attribute + set to true, and there is already a hash generated, the hash is returned immediately, + ignoring the rest of the hash policy list. items: properties: connection: @@ -204,7 +279,10 @@ spec: filterState: properties: key: - description: The name of the Object in the per-request filterState, which is an Envoy::Hashable object. If there is no data associated with the key, or the stored object is not Envoy::Hashable, no hash will be produced. + description: |- + The name of the Object in the per-request filterState, which is + an Envoy::Hashable object. If there is no data associated with the key, + or the stored object is not Envoy::Hashable, no hash will be produced. minLength: 1 type: string required: @@ -222,14 +300,21 @@ spec: queryParameter: properties: name: - description: The name of the URL query parameter that will be used to obtain the hash key. If the parameter is not present, no hash will be produced. Query parameter names are case-sensitive. + description: |- + The name of the URL query parameter that will be used to obtain the hash key. + If the parameter is not present, no hash will be produced. Query parameter names + are case-sensitive. minLength: 1 type: string required: - name type: object terminal: - description: 'Terminal is a flag that short-circuits the hash computing. This field provides a ‘fallback’ style of configuration: “if a terminal policy doesn’t work, fallback to rest of the policy list”, it saves time when the terminal policy works. If true, and there is already a hash computed, ignore rest of the list of hash polices.' + description: |- + Terminal is a flag that short-circuits the hash computing. This field provides + a ‘fallback’ style of configuration: “if a terminal policy doesn’t work, fallback + to rest of the policy list”, it saves time when the terminal policy works. + If true, and there is already a hash computed, ignore rest of the list of hash polices. type: boolean type: enum: @@ -244,20 +329,27 @@ spec: type: object type: array maxRingSize: - description: Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered to further constrain resource use. + description: |- + Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, + but can be lowered to further constrain resource use. format: int32 maximum: 8000000.0 minimum: 1.0 type: integer minRingSize: - description: Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each provided host) the better the request distribution will reflect the desired weights. Defaults to 1024 entries, and limited to 8M entries. + description: |- + Minimum hash ring size. The larger the ring is (that is, + the more hashes there are for each provided host) the better the request distribution + will reflect the desired weights. Defaults to 1024 entries, and limited to 8M entries. format: int32 maximum: 8000000.0 minimum: 1.0 type: integer type: object roundRobin: - description: RoundRobin is a load balancing algorithm that distributes requests across available upstream hosts in round-robin order. + description: |- + RoundRobin is a load balancing algorithm that distributes requests + across available upstream hosts in round-robin order. type: object type: enum: @@ -274,7 +366,9 @@ spec: description: LocalityAwareness contains configuration for locality aware load balancing. properties: crossZone: - description: CrossZone defines locality aware load balancing priorities when dataplane proxies inside local zone are unavailable + description: |- + CrossZone defines locality aware load balancing priorities when dataplane proxies inside local zone + are unavailable properties: failover: description: Failover defines list of load balancing rules in order of priority @@ -313,7 +407,12 @@ spec: type: object type: array failoverThreshold: - description: 'FailoverThreshold defines the percentage of live destination dataplane proxies below which load balancing to the next priority starts. Example: If you configure failoverThreshold to 70, and you have deployed 10 destination dataplane proxies. Load balancing to next priority will start when number of live destination dataplane proxies drops below 7. Default 50' + description: |- + FailoverThreshold defines the percentage of live destination dataplane proxies below which load balancing to the + next priority starts. + Example: If you configure failoverThreshold to 70, and you have deployed 10 destination dataplane proxies. + Load balancing to next priority will start when number of live destination dataplane proxies drops below 7. + Default 50 properties: percentage: anyOf: @@ -325,7 +424,9 @@ spec: type: object type: object disabled: - description: Disabled allows to disable locality-aware load balancing. When disabled requests are distributed across all endpoints regardless of locality. + description: |- + Disabled allows to disable locality-aware load balancing. + When disabled requests are distributed across all endpoints regardless of locality. type: boolean localZone: description: LocalZone defines locality aware load balancing priorities between dataplane proxies inside a zone @@ -338,7 +439,13 @@ spec: description: Key defines tag for which affinity is configured type: string weight: - description: 'Weight of the tag used for load balancing. The bigger the weight the bigger the priority. Percentage of local traffic load balanced to tag is computed by dividing weight by sum of weights from all tags. For example with two affinity tags first with weight 80 and second with weight 20, then 80% of traffic will be redirected to the first tag, and 20% of traffic will be redirected to second one. Setting weights is not mandatory. When weights are not set control plane will compute default weight based on list order. Default: If you do not specify weight we will adjust them so that 90% traffic goes to first tag, 9% to next, and 1% to third and so on.' + description: |- + Weight of the tag used for load balancing. The bigger the weight the bigger the priority. + Percentage of local traffic load balanced to tag is computed by dividing weight by sum of weights from all tags. + For example with two affinity tags first with weight 80 and second with weight 20, + then 80% of traffic will be redirected to the first tag, and 20% of traffic will be redirected to second one. + Setting weights is not mandatory. When weights are not set control plane will compute default weight based on list order. + Default: If you do not specify weight we will adjust them so that 90% traffic goes to first tag, 9% to next, and 1% to third and so on. format: int32 type: integer required: @@ -349,7 +456,9 @@ spec: type: object type: object targetRef: - description: TargetRef is a reference to the resource that represents a group of destinations. + description: |- + TargetRef is a reference to the resource that represents a group of + destinations. properties: kind: description: Kind of the referenced resource @@ -365,12 +474,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshproxypatches.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshproxypatches.yaml index 5c7e4c3ea..ceb2ac89b 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshproxypatches.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshproxypatches.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshproxypatches.kuma.io spec: group: kuma.io @@ -27,10 +27,19 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -38,7 +47,9 @@ spec: description: Spec is the specification of the Kuma MeshProxyPatch resource. properties: default: - description: Default is a configuration specific to the group of destinations referenced in 'targetRef'. + description: |- + Default is a configuration specific to the group of destinations + referenced in 'targetRef'. properties: appendModifications: description: AppendModifications is a list of modifications applied on the selected proxy. @@ -48,7 +59,9 @@ spec: description: Cluster is a modification of Envoy's Cluster resource. properties: jsonPatches: - description: JsonPatches specifies list of jsonpatches to apply to on Envoy's Cluster resource + description: |- + JsonPatches specifies list of jsonpatches to apply to on Envoy's Cluster + resource items: description: JsonPatchBlock is one json patch operation block. properties: @@ -82,7 +95,23 @@ spec: description: Name of the cluster to match. type: string origin: - description: "Origin is the name of the component or plugin that generated the resource. \n Here is the list of well-known origins: inbound - resources generated for handling incoming traffic. outbound - resources generated for handling outgoing traffic. transparent - resources generated for transparent proxy functionality. prometheus - resources generated when Prometheus metrics are enabled. direct-access - resources generated for Direct Access functionality. ingress - resources generated for Zone Ingress. egress - resources generated for Zone Egress. gateway - resources generated for MeshGateway. \n The list is not complete, because policy plugins can introduce new resources. For example MeshTrace plugin can create Cluster with \"mesh-trace\" origin." + description: |- + Origin is the name of the component or plugin that generated the resource. + + + Here is the list of well-known origins: + inbound - resources generated for handling incoming traffic. + outbound - resources generated for handling outgoing traffic. + transparent - resources generated for transparent proxy functionality. + prometheus - resources generated when Prometheus metrics are enabled. + direct-access - resources generated for Direct Access functionality. + ingress - resources generated for Zone Ingress. + egress - resources generated for Zone Egress. + gateway - resources generated for MeshGateway. + + + The list is not complete, because policy plugins can introduce new resources. + For example MeshTrace plugin can create Cluster with "mesh-trace" origin. type: string type: object operation: @@ -99,10 +128,14 @@ spec: - operation type: object httpFilter: - description: HTTPFilter is a modification of Envoy HTTP Filter available in HTTP Connection Manager in a Listener resource. + description: |- + HTTPFilter is a modification of Envoy HTTP Filter + available in HTTP Connection Manager in a Listener resource. properties: jsonPatches: - description: JsonPatches specifies list of jsonpatches to apply to on Envoy's HTTP Filter available in HTTP Connection Manager in a Listener resource. + description: |- + JsonPatches specifies list of jsonpatches to apply to on Envoy's + HTTP Filter available in HTTP Connection Manager in a Listener resource. items: description: JsonPatchBlock is one json patch operation block. properties: @@ -144,7 +177,23 @@ spec: description: Name of the HTTP filter. For example "envoy.filters.http.local_ratelimit" type: string origin: - description: "Origin is the name of the component or plugin that generated the resource. \n Here is the list of well-known origins: inbound - resources generated for handling incoming traffic. outbound - resources generated for handling outgoing traffic. transparent - resources generated for transparent proxy functionality. prometheus - resources generated when Prometheus metrics are enabled. direct-access - resources generated for Direct Access functionality. ingress - resources generated for Zone Ingress. egress - resources generated for Zone Egress. gateway - resources generated for MeshGateway. \n The list is not complete, because policy plugins can introduce new resources. For example MeshTrace plugin can create Cluster with \"mesh-trace\" origin." + description: |- + Origin is the name of the component or plugin that generated the resource. + + + Here is the list of well-known origins: + inbound - resources generated for handling incoming traffic. + outbound - resources generated for handling outgoing traffic. + transparent - resources generated for transparent proxy functionality. + prometheus - resources generated when Prometheus metrics are enabled. + direct-access - resources generated for Direct Access functionality. + ingress - resources generated for Zone Ingress. + egress - resources generated for Zone Egress. + gateway - resources generated for MeshGateway. + + + The list is not complete, because policy plugins can introduce new resources. + For example MeshTrace plugin can create Cluster with "mesh-trace" origin. type: string type: object operation: @@ -167,7 +216,9 @@ spec: description: Listener is a modification of Envoy's Listener resource. properties: jsonPatches: - description: JsonPatches specifies list of jsonpatches to apply to on Envoy's Listener resource + description: |- + JsonPatches specifies list of jsonpatches to apply to on Envoy's Listener + resource items: description: JsonPatchBlock is one json patch operation block. properties: @@ -201,7 +252,23 @@ spec: description: Name of the listener to match. type: string origin: - description: "Origin is the name of the component or plugin that generated the resource. \n Here is the list of well-known origins: inbound - resources generated for handling incoming traffic. outbound - resources generated for handling outgoing traffic. transparent - resources generated for transparent proxy functionality. prometheus - resources generated when Prometheus metrics are enabled. direct-access - resources generated for Direct Access functionality. ingress - resources generated for Zone Ingress. egress - resources generated for Zone Egress. gateway - resources generated for MeshGateway. \n The list is not complete, because policy plugins can introduce new resources. For example MeshTrace plugin can create Cluster with \"mesh-trace\" origin." + description: |- + Origin is the name of the component or plugin that generated the resource. + + + Here is the list of well-known origins: + inbound - resources generated for handling incoming traffic. + outbound - resources generated for handling outgoing traffic. + transparent - resources generated for transparent proxy functionality. + prometheus - resources generated when Prometheus metrics are enabled. + direct-access - resources generated for Direct Access functionality. + ingress - resources generated for Zone Ingress. + egress - resources generated for Zone Egress. + gateway - resources generated for MeshGateway. + + + The list is not complete, because policy plugins can introduce new resources. + For example MeshTrace plugin can create Cluster with "mesh-trace" origin. type: string tags: additionalProperties: @@ -226,7 +293,9 @@ spec: description: NetworkFilter is a modification of Envoy Listener's filter. properties: jsonPatches: - description: JsonPatches specifies list of jsonpatches to apply to on Envoy Listener's filter. + description: |- + JsonPatches specifies list of jsonpatches to apply to on Envoy Listener's + filter. items: description: JsonPatchBlock is one json patch operation block. properties: @@ -268,7 +337,23 @@ spec: description: Name of the network filter. For example "envoy.filters.network.ratelimit" type: string origin: - description: "Origin is the name of the component or plugin that generated the resource. \n Here is the list of well-known origins: inbound - resources generated for handling incoming traffic. outbound - resources generated for handling outgoing traffic. transparent - resources generated for transparent proxy functionality. prometheus - resources generated when Prometheus metrics are enabled. direct-access - resources generated for Direct Access functionality. ingress - resources generated for Zone Ingress. egress - resources generated for Zone Egress. gateway - resources generated for MeshGateway. \n The list is not complete, because policy plugins can introduce new resources. For example MeshTrace plugin can create Cluster with \"mesh-trace\" origin." + description: |- + Origin is the name of the component or plugin that generated the resource. + + + Here is the list of well-known origins: + inbound - resources generated for handling incoming traffic. + outbound - resources generated for handling outgoing traffic. + transparent - resources generated for transparent proxy functionality. + prometheus - resources generated when Prometheus metrics are enabled. + direct-access - resources generated for Direct Access functionality. + ingress - resources generated for Zone Ingress. + egress - resources generated for Zone Egress. + gateway - resources generated for MeshGateway. + + + The list is not complete, because policy plugins can introduce new resources. + For example MeshTrace plugin can create Cluster with "mesh-trace" origin. type: string type: object operation: @@ -288,10 +373,14 @@ spec: - operation type: object virtualHost: - description: VirtualHost is a modification of Envoy's VirtualHost referenced in HTTP Connection Manager in a Listener resource. + description: |- + VirtualHost is a modification of Envoy's VirtualHost + referenced in HTTP Connection Manager in a Listener resource. properties: jsonPatches: - description: JsonPatches specifies list of jsonpatches to apply to on Envoy's VirtualHost resource + description: |- + JsonPatches specifies list of jsonpatches to apply to on Envoy's + VirtualHost resource items: description: JsonPatchBlock is one json patch operation block. properties: @@ -325,7 +414,23 @@ spec: description: Name of the VirtualHost to match. type: string origin: - description: "Origin is the name of the component or plugin that generated the resource. \n Here is the list of well-known origins: inbound - resources generated for handling incoming traffic. outbound - resources generated for handling outgoing traffic. transparent - resources generated for transparent proxy functionality. prometheus - resources generated when Prometheus metrics are enabled. direct-access - resources generated for Direct Access functionality. ingress - resources generated for Zone Ingress. egress - resources generated for Zone Egress. gateway - resources generated for MeshGateway. \n The list is not complete, because policy plugins can introduce new resources. For example MeshTrace plugin can create Cluster with \"mesh-trace\" origin." + description: |- + Origin is the name of the component or plugin that generated the resource. + + + Here is the list of well-known origins: + inbound - resources generated for handling incoming traffic. + outbound - resources generated for handling outgoing traffic. + transparent - resources generated for transparent proxy functionality. + prometheus - resources generated when Prometheus metrics are enabled. + direct-access - resources generated for Direct Access functionality. + ingress - resources generated for Zone Ingress. + egress - resources generated for Zone Egress. + gateway - resources generated for MeshGateway. + + + The list is not complete, because policy plugins can introduce new resources. + For example MeshTrace plugin can create Cluster with "mesh-trace" origin. type: string routeConfigurationName: description: Name of the RouteConfiguration resource to match. @@ -351,7 +456,10 @@ spec: - appendModifications type: object targetRef: - description: 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. + description: |- + 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. properties: kind: description: Kind of the referenced resource @@ -367,12 +475,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshratelimits.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshratelimits.yaml index 8c1b81bab..cb808128c 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshratelimits.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshratelimits.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshratelimits.kuma.io spec: group: kuma.io @@ -27,10 +27,19 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -42,13 +51,17 @@ spec: items: properties: default: - description: Default is a configuration specific to the group of clients referenced in 'targetRef' + description: |- + Default is a configuration specific to the group of clients referenced in + 'targetRef' properties: local: description: LocalConf defines local http or/and tcp rate limit configuration properties: http: - description: LocalHTTP defines confguration of local HTTP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter + description: |- + LocalHTTP defines confguration of local HTTP rate limiting + https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter properties: disabled: description: Define if rate limiting should be disabled. @@ -110,7 +123,9 @@ spec: description: The interval the number of units is accounted for. type: string num: - description: Number of units per interval (depending on usage it can be a number of requests, or a number of connections). + description: |- + Number of units per interval (depending on usage it can be a number of requests, + or a number of connections). format: int32 type: integer required: @@ -119,7 +134,9 @@ spec: type: object type: object tcp: - description: LocalTCP defines confguration of local TCP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter + description: |- + LocalTCP defines confguration of local TCP rate limiting + https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter properties: connectionRate: description: Defines how many connections are allowed per interval. @@ -128,7 +145,9 @@ spec: description: The interval the number of units is accounted for. type: string num: - description: Number of units per interval (depending on usage it can be a number of requests, or a number of connections). + description: |- + Number of units per interval (depending on usage it can be a number of requests, + or a number of connections). format: int32 type: integer required: @@ -136,13 +155,17 @@ spec: - num type: object disabled: - description: 'Define if rate limiting should be disabled. Default: false' + description: |- + Define if rate limiting should be disabled. + Default: false type: boolean type: object type: object type: object targetRef: - description: TargetRef is a reference to the resource that represents a group of clients. + description: |- + TargetRef is a reference to the resource that represents a group of + clients. properties: kind: description: Kind of the referenced resource @@ -158,12 +181,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: @@ -171,7 +209,10 @@ spec: type: object type: array targetRef: - description: 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. + description: |- + 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. properties: kind: description: Kind of the referenced resource @@ -187,12 +228,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: @@ -200,13 +256,17 @@ spec: items: properties: default: - description: Default is a configuration specific to the group of clients referenced in 'targetRef' + description: |- + Default is a configuration specific to the group of clients referenced in + 'targetRef' properties: local: description: LocalConf defines local http or/and tcp rate limit configuration properties: http: - description: LocalHTTP defines confguration of local HTTP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter + description: |- + LocalHTTP defines confguration of local HTTP rate limiting + https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter properties: disabled: description: Define if rate limiting should be disabled. @@ -268,7 +328,9 @@ spec: description: The interval the number of units is accounted for. type: string num: - description: Number of units per interval (depending on usage it can be a number of requests, or a number of connections). + description: |- + Number of units per interval (depending on usage it can be a number of requests, + or a number of connections). format: int32 type: integer required: @@ -277,7 +339,9 @@ spec: type: object type: object tcp: - description: LocalTCP defines confguration of local TCP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter + description: |- + LocalTCP defines confguration of local TCP rate limiting + https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter properties: connectionRate: description: Defines how many connections are allowed per interval. @@ -286,7 +350,9 @@ spec: description: The interval the number of units is accounted for. type: string num: - description: Number of units per interval (depending on usage it can be a number of requests, or a number of connections). + description: |- + Number of units per interval (depending on usage it can be a number of requests, + or a number of connections). format: int32 type: integer required: @@ -294,13 +360,17 @@ spec: - num type: object disabled: - description: 'Define if rate limiting should be disabled. Default: false' + description: |- + Define if rate limiting should be disabled. + Default: false type: boolean type: object type: object type: object targetRef: - description: TargetRef is a reference to the resource that represents a group of clients. + description: |- + TargetRef is a reference to the resource that represents a group of + clients. properties: kind: description: Kind of the referenced resource @@ -316,12 +386,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshretries.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshretries.yaml index fd495b871..e5bf193ee 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshretries.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshretries.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshretries.kuma.io spec: group: kuma.io @@ -27,10 +27,19 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -38,7 +47,10 @@ spec: description: Spec is the specification of the Kuma MeshRetry resource. properties: targetRef: - description: 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. + description: |- + 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. properties: kind: description: Kind of the referenced resource @@ -54,12 +66,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: @@ -67,38 +94,57 @@ spec: items: properties: default: - description: Default is a configuration specific to the group of destinations referenced in 'targetRef' + description: |- + Default is a configuration specific to the group of destinations referenced in + 'targetRef' properties: grpc: description: GRPC defines a configuration of retries for GRPC traffic properties: backOff: - description: BackOff is a configuration of durations which will be used in an exponential backoff strategy between retries. + description: |- + BackOff is a configuration of durations which will be used in an exponential + backoff strategy between retries. properties: baseInterval: default: 25ms - description: BaseInterval is an amount of time which should be taken between retries. Must be greater than zero. Values less than 1 ms are rounded up to 1 ms. + description: |- + BaseInterval is an amount of time which should be taken between retries. + Must be greater than zero. Values less than 1 ms are rounded up to 1 ms. type: string maxInterval: - description: MaxInterval is a maximal amount of time which will be taken between retries. Default is 10 times the "BaseInterval". + description: |- + MaxInterval is a maximal amount of time which will be taken between retries. + Default is 10 times the "BaseInterval". type: string type: object numRetries: - description: NumRetries is the number of attempts that will be made on failed (and retriable) requests. If not set, the default value is 1. + description: |- + NumRetries is the number of attempts that will be made on failed (and + retriable) requests. If not set, the default value is 1. format: int32 type: integer perTryTimeout: - description: PerTryTimeout is the maximum amount of time each retry attempt can take before it times out. If not set, the global request timeout for the route will be used. Setting this value to 0 will disable the per-try timeout. + description: |- + PerTryTimeout is the maximum amount of time each retry attempt can take + before it times out. If not set, the global request timeout for the route + will be used. Setting this value to 0 will disable the per-try timeout. type: string rateLimitedBackOff: - description: RateLimitedBackOff is a configuration of backoff which will be used when the upstream returns one of the headers configured. + description: |- + RateLimitedBackOff is a configuration of backoff which will be used when + the upstream returns one of the headers configured. properties: maxInterval: default: 300s description: MaxInterval is a maximal amount of time which will be taken between retries. type: string resetHeaders: - description: ResetHeaders specifies the list of headers (like Retry-After or X-RateLimit-Reset) to match against the response. Headers are tried in order, and matched case-insensitive. The first header to be parsed successfully is used. If no headers match the default exponential BackOff is used instead. + description: |- + ResetHeaders specifies the list of headers (like Retry-After or X-RateLimit-Reset) + to match against the response. Headers are tried in order, and matched + case-insensitive. The first header to be parsed successfully is used. + If no headers match the default exponential BackOff is used instead. items: properties: format: @@ -141,18 +187,26 @@ spec: description: HTTP defines a configuration of retries for HTTP traffic properties: backOff: - description: BackOff is a configuration of durations which will be used in exponential backoff strategy between retries. + description: |- + BackOff is a configuration of durations which will be used in exponential + backoff strategy between retries. properties: baseInterval: default: 25ms - description: BaseInterval is an amount of time which should be taken between retries. Must be greater than zero. Values less than 1 ms are rounded up to 1 ms. + description: |- + BaseInterval is an amount of time which should be taken between retries. + Must be greater than zero. Values less than 1 ms are rounded up to 1 ms. type: string maxInterval: - description: MaxInterval is a maximal amount of time which will be taken between retries. Default is 10 times the "BaseInterval". + description: |- + MaxInterval is a maximal amount of time which will be taken between retries. + Default is 10 times the "BaseInterval". type: string type: object hostSelection: - description: HostSelection is a list of predicates that dictate how hosts should be selected when requests are retried. + description: |- + HostSelection is a list of predicates that dictate how hosts should be selected + when requests are retried. items: properties: predicate: @@ -165,11 +219,15 @@ spec: tags: additionalProperties: type: string - description: Tags is a map of metadata to match against for selecting the omitted hosts. Required if Type is OmitHostsWithTags + description: |- + Tags is a map of metadata to match against for selecting the omitted hosts. Required if Type is + OmitHostsWithTags type: object updateFrequency: default: 2 - description: UpdateFrequency is how often the priority load should be updated based on previously attempted priorities. Used for OmitPreviousPriorities. + description: |- + UpdateFrequency is how often the priority load should be updated based on previously attempted priorities. + Used for OmitPreviousPriorities. format: int32 type: integer required: @@ -177,25 +235,41 @@ spec: type: object type: array hostSelectionMaxAttempts: - description: HostSelectionMaxAttempts is the maximum number of times host selection will be reattempted before giving up, at which point the host that was last selected will be routed to. If unspecified, this will default to retrying once. + description: |- + HostSelectionMaxAttempts is the maximum number of times host selection will be + reattempted before giving up, at which point the host that was last selected will + be routed to. If unspecified, this will default to retrying once. format: int64 type: integer numRetries: - description: NumRetries is the number of attempts that will be made on failed (and retriable) requests. If not set, the default value is 1. + description: |- + NumRetries is the number of attempts that will be made on failed (and + retriable) requests. If not set, the default value is 1. format: int32 type: integer perTryTimeout: - description: PerTryTimeout is the amount of time after which retry attempt should time out. If left unspecified, the global route timeout for the request will be used. Consequently, when using a 5xx based retry policy, a request that times out will not be retried as the total timeout budget would have been exhausted. Setting this timeout to 0 will disable it. + description: |- + PerTryTimeout is the amount of time after which retry attempt should time out. + If left unspecified, the global route timeout for the request will be used. + Consequently, when using a 5xx based retry policy, a request that times out + will not be retried as the total timeout budget would have been exhausted. + Setting this timeout to 0 will disable it. type: string rateLimitedBackOff: - description: RateLimitedBackOff is a configuration of backoff which will be used when the upstream returns one of the headers configured. + description: |- + RateLimitedBackOff is a configuration of backoff which will be used + when the upstream returns one of the headers configured. properties: maxInterval: default: 300s description: MaxInterval is a maximal amount of time which will be taken between retries. type: string resetHeaders: - description: ResetHeaders specifies the list of headers (like Retry-After or X-RateLimit-Reset) to match against the response. Headers are tried in order, and matched case-insensitive. The first header to be parsed successfully is used. If no headers match the default exponential BackOff is used instead. + description: |- + ResetHeaders specifies the list of headers (like Retry-After or X-RateLimit-Reset) + to match against the response. Headers are tried in order, and matched + case-insensitive. The first header to be parsed successfully is used. + If no headers match the default exponential BackOff is used instead. items: properties: format: @@ -217,12 +291,18 @@ spec: type: array type: object retriableRequestHeaders: - description: RetriableRequestHeaders is an HTTP headers which must be present in the request for retries to be attempted. + description: |- + RetriableRequestHeaders is an HTTP headers which must be present in the request + for retries to be attempted. items: - description: HeaderMatch describes how to select an HTTP route by matching HTTP request headers. + description: |- + HeaderMatch describes how to select an HTTP route by matching HTTP request + headers. properties: name: - description: Name is the name of the HTTP Header to be matched. Name MUST be lower case as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2). + description: |- + Name is the name of the HTTP Header to be matched. Name MUST be lower case + as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2). maxLength: 256 minLength: 1 pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$ @@ -245,12 +325,19 @@ spec: type: object type: array retriableResponseHeaders: - description: RetriableResponseHeaders is an HTTP response headers that trigger a retry if present in the response. A retry will be triggered if any of the header matches the upstream response headers. + description: |- + RetriableResponseHeaders is an HTTP response headers that trigger a retry + if present in the response. A retry will be triggered if any of the header + matches the upstream response headers. items: - description: HeaderMatch describes how to select an HTTP route by matching HTTP request headers. + description: |- + HeaderMatch describes how to select an HTTP route by matching HTTP request + headers. properties: name: - description: Name is the name of the HTTP Header to be matched. Name MUST be lower case as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2). + description: |- + Name is the name of the HTTP Header to be matched. Name MUST be lower case + as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2). maxLength: 256 minLength: 1 pattern: ^[a-z0-9!#$%&'*+\-.^_\x60|~]+$ @@ -273,7 +360,13 @@ spec: type: object type: array retryOn: - description: 'RetryOn is a list of conditions which will cause a retry. Available values are: [5XX, GatewayError, Reset, Retriable4xx, ConnectFailure, EnvoyRatelimited, RefusedStream, Http3PostConnectFailure, HttpMethodConnect, HttpMethodDelete, HttpMethodGet, HttpMethodHead, HttpMethodOptions, HttpMethodPatch, HttpMethodPost, HttpMethodPut, HttpMethodTrace]. Also, any HTTP status code (500, 503, etc.).' + description: |- + RetryOn is a list of conditions which will cause a retry. Available values are: + [5XX, GatewayError, Reset, Retriable4xx, ConnectFailure, EnvoyRatelimited, + RefusedStream, Http3PostConnectFailure, HttpMethodConnect, HttpMethodDelete, + HttpMethodGet, HttpMethodHead, HttpMethodOptions, HttpMethodPatch, + HttpMethodPost, HttpMethodPut, HttpMethodTrace]. + Also, any HTTP status code (500, 503, etc.). example: - 5XX - GatewayError @@ -302,13 +395,17 @@ spec: description: TCP defines a configuration of retries for TCP traffic properties: maxConnectAttempt: - description: MaxConnectAttempt is a maximal amount of TCP connection attempts which will be made before giving up + description: |- + MaxConnectAttempt is a maximal amount of TCP connection attempts + which will be made before giving up format: int32 type: integer type: object type: object targetRef: - description: TargetRef is a reference to the resource that represents a group of destinations. + description: |- + TargetRef is a reference to the resource that represents a group of + destinations. properties: kind: description: Kind of the referenced resource @@ -324,12 +421,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtcproutes.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtcproutes.yaml index cffe2c9af..4c6b01441 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtcproutes.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtcproutes.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshtcproutes.kuma.io spec: group: kuma.io @@ -27,10 +27,19 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -38,7 +47,10 @@ spec: description: Spec is the specification of the Kuma MeshTCPRoute resource. properties: targetRef: - description: 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 in-place. + description: |- + 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 in-place. properties: kind: description: Kind of the referenced resource @@ -54,24 +66,45 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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 the consumed services and corresponding configurations + description: |- + To list makes a match between the consumed services and corresponding + configurations items: properties: rules: - description: Rules contains the routing rules applies to a combination of top-level targetRef and the targetRef in this entry. + description: |- + Rules contains the routing rules applies to a combination of top-level + targetRef and the targetRef in this entry. items: properties: default: - description: Default holds routing rules that can be merged with rules from other policies. + description: |- + Default holds routing rules that can be merged with rules from other + policies. properties: backendRefs: items: @@ -91,12 +124,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + description: |- + Tags used to select a subset of proxies by tags. Can only be used with kinds + `MeshSubset` and `MeshServiceSubset` type: object weight: default: 1 @@ -114,7 +162,9 @@ spec: maxItems: 1 type: array targetRef: - description: TargetRef is a reference to the resource that represents a group of destinations. + description: |- + TargetRef is a reference to the resource that represents a group of + destinations. properties: kind: description: Kind of the referenced resource @@ -130,12 +180,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtimeouts.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtimeouts.yaml index 90e97d380..6aece010f 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtimeouts.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtimeouts.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshtimeouts.kuma.io spec: group: kuma.io @@ -27,10 +27,19 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -42,33 +51,60 @@ spec: items: properties: default: - description: Default is a configuration specific to the group of clients referenced in 'targetRef' + description: |- + Default is a configuration specific to the group of clients referenced in + 'targetRef' properties: connectionTimeout: - description: ConnectionTimeout specifies the amount of time proxy will wait for an TCP connection to be established. Default value is 5 seconds. Cannot be set to 0. + description: |- + ConnectionTimeout specifies the amount of time proxy will wait for an TCP connection to be established. + Default value is 5 seconds. Cannot be set to 0. type: string http: description: Http provides configuration for HTTP specific timeouts properties: maxConnectionDuration: - description: MaxConnectionDuration is the time after which a connection will be drained and/or closed, starting from when it was first established. Setting this timeout to 0 will disable it. Disabled by default. + description: |- + MaxConnectionDuration is the time after which a connection will be drained and/or closed, + starting from when it was first established. Setting this timeout to 0 will disable it. + Disabled by default. type: string maxStreamDuration: - description: MaxStreamDuration is the maximum time that a stream’s lifetime will span. Setting this timeout to 0 will disable it. Disabled by default. + description: |- + MaxStreamDuration is the maximum time that a stream’s lifetime will span. + Setting this timeout to 0 will disable it. Disabled by default. + type: string + requestHeadersTimeout: + description: |- + RequestHeadersTimeout The amount of time that proxy will wait for the request headers to be received. The timer is + activated when the first byte of the headers is received, and is disarmed when the last byte of + the headers has been received. If not specified or set to 0, this timeout is disabled. + Disabled by default. type: string requestTimeout: - description: RequestTimeout The amount of time that proxy will wait for the entire request to be received. The timer is activated when the request is initiated, and is disarmed when the last byte of the request is sent, OR when the response is initiated. Setting this timeout to 0 will disable it. Default is 15s. + description: |- + RequestTimeout The amount of time that proxy will wait for the entire request to be received. + The timer is activated when the request is initiated, and is disarmed when the last byte of the request is sent, + OR when the response is initiated. Setting this timeout to 0 will disable it. + Default is 15s. type: string streamIdleTimeout: - description: StreamIdleTimeout is the amount of time that proxy will allow a stream to exist with no activity. Setting this timeout to 0 will disable it. Default is 30m + description: |- + StreamIdleTimeout is the amount of time that proxy will allow a stream to exist with no activity. + Setting this timeout to 0 will disable it. Default is 30m type: string type: object idleTimeout: - description: IdleTimeout is defined as the period in which there are no bytes sent or received on connection Setting this timeout to 0 will disable it. Be cautious when disabling it because it can lead to connection leaking. Default value is 1h. + description: |- + IdleTimeout is defined as the period in which there are no bytes sent or received on connection + Setting this timeout to 0 will disable it. Be cautious when disabling it because + it can lead to connection leaking. Default value is 1h. type: string type: object targetRef: - description: TargetRef is a reference to the resource that represents a group of clients. + description: |- + TargetRef is a reference to the resource that represents a group of + clients. properties: kind: description: Kind of the referenced resource @@ -84,12 +120,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: @@ -97,7 +148,10 @@ spec: type: object type: array targetRef: - description: 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. + description: |- + 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. properties: kind: description: Kind of the referenced resource @@ -113,12 +167,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: @@ -126,33 +195,60 @@ spec: items: properties: default: - description: Default is a configuration specific to the group of destinations referenced in 'targetRef' + description: |- + Default is a configuration specific to the group of destinations referenced in + 'targetRef' properties: connectionTimeout: - description: ConnectionTimeout specifies the amount of time proxy will wait for an TCP connection to be established. Default value is 5 seconds. Cannot be set to 0. + description: |- + ConnectionTimeout specifies the amount of time proxy will wait for an TCP connection to be established. + Default value is 5 seconds. Cannot be set to 0. type: string http: description: Http provides configuration for HTTP specific timeouts properties: maxConnectionDuration: - description: MaxConnectionDuration is the time after which a connection will be drained and/or closed, starting from when it was first established. Setting this timeout to 0 will disable it. Disabled by default. + description: |- + MaxConnectionDuration is the time after which a connection will be drained and/or closed, + starting from when it was first established. Setting this timeout to 0 will disable it. + Disabled by default. type: string maxStreamDuration: - description: MaxStreamDuration is the maximum time that a stream’s lifetime will span. Setting this timeout to 0 will disable it. Disabled by default. + description: |- + MaxStreamDuration is the maximum time that a stream’s lifetime will span. + Setting this timeout to 0 will disable it. Disabled by default. + type: string + requestHeadersTimeout: + description: |- + RequestHeadersTimeout The amount of time that proxy will wait for the request headers to be received. The timer is + activated when the first byte of the headers is received, and is disarmed when the last byte of + the headers has been received. If not specified or set to 0, this timeout is disabled. + Disabled by default. type: string requestTimeout: - description: RequestTimeout The amount of time that proxy will wait for the entire request to be received. The timer is activated when the request is initiated, and is disarmed when the last byte of the request is sent, OR when the response is initiated. Setting this timeout to 0 will disable it. Default is 15s. + description: |- + RequestTimeout The amount of time that proxy will wait for the entire request to be received. + The timer is activated when the request is initiated, and is disarmed when the last byte of the request is sent, + OR when the response is initiated. Setting this timeout to 0 will disable it. + Default is 15s. type: string streamIdleTimeout: - description: StreamIdleTimeout is the amount of time that proxy will allow a stream to exist with no activity. Setting this timeout to 0 will disable it. Default is 30m + description: |- + StreamIdleTimeout is the amount of time that proxy will allow a stream to exist with no activity. + Setting this timeout to 0 will disable it. Default is 30m type: string type: object idleTimeout: - description: IdleTimeout is defined as the period in which there are no bytes sent or received on connection Setting this timeout to 0 will disable it. Be cautious when disabling it because it can lead to connection leaking. Default value is 1h. + description: |- + IdleTimeout is defined as the period in which there are no bytes sent or received on connection + Setting this timeout to 0 will disable it. Be cautious when disabling it because + it can lead to connection leaking. Default value is 1h. type: string type: object targetRef: - description: TargetRef is a reference to the resource that represents a group of destinations. + description: |- + TargetRef is a reference to the resource that represents a group of + destinations. properties: kind: description: Kind of the referenced resource @@ -168,12 +264,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtraces.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtraces.yaml index b73e88625..3f51b170a 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtraces.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtraces.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshtraces.kuma.io spec: group: kuma.io @@ -27,10 +27,19 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -41,7 +50,12 @@ spec: description: MeshTrace configuration. properties: backends: - description: A one element array of backend definition. Envoy allows configuring only 1 backend, so the natural way of representing that would be just one object. Unfortunately due to the reasons explained in MADR 009-tracing-policy this has to be a one element array for now. + description: |- + A one element array of backend definition. + Envoy allows configuring only 1 backend, so the natural way of + representing that would be just one object. Unfortunately due to the + reasons explained in MADR 009-tracing-policy this has to be a one element + array for now. items: description: Only one of zipkin, datadog or openTelemetry can be used. properties: @@ -50,10 +64,17 @@ spec: properties: splitService: default: false - description: 'Determines if datadog service name should be split based on traffic direction and destination. For example, with `splitService: true` and a `backend` service that communicates with a couple of databases, you would get service names like `backend_INBOUND`, `backend_OUTBOUND_db1`, and `backend_OUTBOUND_db2` in Datadog.' + description: |- + Determines if datadog service name should be split based on traffic + direction and destination. For example, with `splitService: true` and a + `backend` service that communicates with a couple of databases, you would + get service names like `backend_INBOUND`, `backend_OUTBOUND_db1`, and + `backend_OUTBOUND_db2` in Datadog. type: boolean url: - description: Address of Datadog collector, only host and port are allowed (no paths, fragments etc.) + description: |- + Address of Datadog collector, only host and port are allowed (no paths, + fragments etc.) type: string required: - url @@ -80,14 +101,19 @@ spec: properties: apiVersion: default: httpJson - description: Version of the API. https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/trace/v3/zipkin.proto#L66 + description: |- + Version of the API. + https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/trace/v3/zipkin.proto#L66 enum: - httpJson - httpProto type: string sharedSpanContext: default: true - description: Determines whether client and server spans will share the same span context. https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/trace/v3/zipkin.proto#L63 + description: |- + Determines whether client and server spans will share the same span + context. + https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/trace/v3/zipkin.proto#L63 type: boolean traceId128bit: default: false @@ -105,40 +131,68 @@ spec: maxItems: 1 type: array sampling: - description: Sampling configuration. Sampling is the process by which a decision is made on whether to process/export a span or not. + description: |- + Sampling configuration. + Sampling is the process by which a decision is made on whether to + process/export a span or not. properties: client: anyOf: - type: integer - type: string default: 100% - description: Target percentage of requests that will be force traced if the 'x-client-trace-id' header is set. Mirror of client_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L127-L133 Either int or decimal represented as string. + description: |- + Target percentage of requests that will be force traced if the + 'x-client-trace-id' header is set. Mirror of client_sampling in Envoy + https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L127-L133 + Either int or decimal represented as string. x-kubernetes-int-or-string: true overall: anyOf: - type: integer - type: string default: 100% - description: Target percentage of requests will be traced after all other sampling checks have been applied (client, force tracing, random sampling). This field functions as an upper limit on the total configured sampling rate. For instance, setting client_sampling to 100% but overall_sampling to 1% will result in only 1% of client requests with the appropriate headers to be force traced. Mirror of overall_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L142-L150 Either int or decimal represented as string. + description: |- + Target percentage of requests will be traced + after all other sampling checks have been applied (client, force tracing, + random sampling). This field functions as an upper limit on the total + configured sampling rate. For instance, setting client_sampling to 100% + but overall_sampling to 1% will result in only 1% of client requests with + the appropriate headers to be force traced. Mirror of + overall_sampling in Envoy + https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L142-L150 + Either int or decimal represented as string. x-kubernetes-int-or-string: true random: anyOf: - type: integer - type: string default: 100% - description: Target percentage of requests that will be randomly selected for trace generation, if not requested by the client or not forced. Mirror of random_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L135-L140 Either int or decimal represented as string. + description: |- + Target percentage of requests that will be randomly selected for trace + generation, if not requested by the client or not forced. + Mirror of random_sampling in Envoy + https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L135-L140 + Either int or decimal represented as string. x-kubernetes-int-or-string: true type: object tags: - description: Custom tags configuration. You can add custom tags to traces based on headers or literal values. + description: |- + Custom tags configuration. You can add custom tags to traces based on + headers or literal values. items: - description: Custom tags configuration. Only one of literal or header can be used. + description: |- + Custom tags configuration. + Only one of literal or header can be used. properties: header: description: Tag taken from a header. properties: default: - description: Default value to use if header is missing. If the default is missing and there is no value the tag will not be included. + description: |- + Default value to use if header is missing. + If the default is missing and there is no value the tag will not be + included. type: string name: description: Name of the header. @@ -158,7 +212,10 @@ spec: type: array type: object targetRef: - description: 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. + description: |- + 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. properties: kind: description: Kind of the referenced resource @@ -174,12 +231,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtrafficpermissions.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtrafficpermissions.yaml index 224c64c54..444624082 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtrafficpermissions.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/meshtrafficpermissions.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: meshtrafficpermissions.kuma.io spec: group: kuma.io @@ -27,10 +27,19 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -42,7 +51,9 @@ spec: items: properties: default: - description: Default is a configuration specific to the group of clients referenced in 'targetRef' + description: |- + Default is a configuration specific to the group of clients referenced in + 'targetRef' properties: action: description: 'Action defines a behavior for the specified group of clients:' @@ -53,7 +64,9 @@ spec: type: string type: object targetRef: - description: TargetRef is a reference to the resource that represents a group of clients. + description: |- + TargetRef is a reference to the resource that represents a group of + clients. properties: kind: description: Kind of the referenced resource @@ -69,12 +82,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: @@ -82,7 +110,10 @@ spec: type: object type: array targetRef: - description: 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. + description: |- + 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. properties: kind: description: Kind of the referenced resource @@ -98,12 +129,27 @@ spec: 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`' + description: |- + Name of the referenced resource. Can only be used with kinds: `MeshService`, + `MeshServiceSubset` and `MeshGatewayRoute` type: string + proxyTypes: + description: |- + ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + all data plane types are targeted by the policy. + items: + enum: + - Sidecar + - Gateway + type: string + minItems: 1 + type: array tags: additionalProperties: type: string - description: Tags used to select a subset of proxies by tags. Can only be used with kinds `MeshSubset` and `MeshServiceSubset` + 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: diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/proxytemplates.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/proxytemplates.yaml index 92958b87c..540141728 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/proxytemplates.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/proxytemplates.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: proxytemplates.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/ratelimits.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/ratelimits.yaml index 4075c1747..3c9630ad3 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/ratelimits.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/ratelimits.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: ratelimits.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/retries.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/retries.yaml index 215d08b40..49dd06b37 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/retries.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/retries.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: retries.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/serviceinsights.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/serviceinsights.yaml index 22a90c4f0..d31c4a1b3 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/serviceinsights.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/serviceinsights.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: serviceinsights.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/timeouts.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/timeouts.yaml index 678815e84..712b720c7 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/timeouts.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/timeouts.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: timeouts.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/trafficlogs.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/trafficlogs.yaml index ac1ea8ad6..6fc2bc552 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/trafficlogs.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/trafficlogs.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: trafficlogs.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/trafficpermissions.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/trafficpermissions.yaml index a72e81f4d..be71eac00 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/trafficpermissions.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/trafficpermissions.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: trafficpermissions.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/trafficroutes.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/trafficroutes.yaml index 28faa9edc..2ab556c16 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/trafficroutes.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/trafficroutes.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: trafficroutes.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/traffictraces.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/traffictraces.yaml index f8b66fa67..cd11c91df 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/traffictraces.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/traffictraces.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: traffictraces.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/virtualoutbounds.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/virtualoutbounds.yaml index 44753b440..d7744ace0 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/virtualoutbounds.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/virtualoutbounds.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: virtualoutbounds.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneegresses.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneegresses.yaml index 044f9cfcd..0f9be3414 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneegresses.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneegresses.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: zoneegresses.kuma.io spec: group: kuma.io @@ -15,18 +15,34 @@ spec: singular: zoneegress scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - description: Zone name + jsonPath: .spec.zone + name: zone + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object @@ -36,3 +52,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneegressinsights.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneegressinsights.yaml index 83de24c30..d2d495cdc 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneegressinsights.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneegressinsights.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: zoneegressinsights.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneingresses.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneingresses.yaml index 5785199f6..edb3ef0eb 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneingresses.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneingresses.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: zoneingresses.kuma.io spec: group: kuma.io @@ -15,18 +15,34 @@ spec: singular: zoneingress scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - description: Zone name + jsonPath: .spec.zone + name: zone + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object @@ -36,3 +52,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneingressinsights.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneingressinsights.yaml index b19bdd189..31aa5d917 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneingressinsights.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneingressinsights.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: zoneingressinsights.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneinsights.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneinsights.yaml index 4d8ad0368..7598d50ac 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneinsights.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zoneinsights.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: zoneinsights.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zones.yaml b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zones.yaml index c10236484..b9bc1bc2e 100644 --- a/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zones.yaml +++ b/crd-catalog/kumahq/kuma/kuma.io/v1alpha1/zones.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: zones.kuma.io spec: group: kuma.io @@ -20,13 +20,24 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string mesh: - description: Mesh is the name of the Kuma mesh this resource belongs to. It may be omitted for cluster-scoped resources. + description: |- + Mesh is the name of the Kuma mesh this resource belongs to. + It may be omitted for cluster-scoped resources. type: string metadata: type: object diff --git a/crd-catalog/longhorn/longhorn/longhorn.io/v1beta2/engineimages.yaml b/crd-catalog/longhorn/longhorn/longhorn.io/v1beta2/engineimages.yaml index a03610a2a..7e6a068a5 100644 --- a/crd-catalog/longhorn/longhorn/longhorn.io/v1beta2/engineimages.yaml +++ b/crd-catalog/longhorn/longhorn/longhorn.io/v1beta2/engineimages.yaml @@ -34,6 +34,10 @@ spec: scope: Namespaced versions: - additionalPrinterColumns: + - description: Compatibility of the engine image + jsonPath: .status.incompatible + name: Incompatible + type: boolean - description: State of the engine image jsonPath: .status.state name: State 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 e2fe4f30b..71ef95aea 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 @@ -567,6 +567,94 @@ spec: type: string description: NodeSelector to be used in the Backup Pod. type: object + 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." + 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 be set if type is "Localhost". Must NOT be set for any other type. + 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, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. 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. 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 resources: description: Resouces describes the compute resource requirements. properties: @@ -625,6 +713,93 @@ spec: required: - cron type: object + securityContext: + 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.' + 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 be set if type is "Localhost". Must NOT be set for any other type. + 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. 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 storage: description: Storage to be used in the Backup. properties: @@ -775,6 +950,9 @@ spec: endpoint: description: Endpoint is the S3 API endpoint without scheme. type: string + prefix: + description: Prefix allows backups to be placed under a specific prefix in the bucket. + type: string region: description: Region is the S3 region name to use. type: string 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 957b972de..452f8518c 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 @@ -557,6 +557,9 @@ spec: endpoint: description: Endpoint is the S3 API endpoint without scheme. type: string + prefix: + description: Prefix allows backups to be placed under a specific prefix in the bucket. + type: string region: description: Region is the S3 region name to use. type: string @@ -4832,6 +4835,9 @@ spec: - LoadBalancer type: string type: object + serviceAccountName: + description: ServiceAccountName is the name of the ServiceAccount to be used by the Pods. + type: string sidecarContainers: description: SidecarContainers to be used in the Pod. items: @@ -5356,6 +5362,74 @@ spec: type: string type: object type: array + topologySpreadConstraints: + description: TopologySpreadConstraints to be used in the Pod. + items: + description: TopologySpreadConstraint specifies how to spread matching pods among the given topology. + properties: + labelSelector: + description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default)." + items: + type: string + type: array + x-kubernetes-list-type: atomic + maxSkew: + description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.' + format: int32 + type: integer + minDomains: + description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)." + format: int32 + type: integer + nodeAffinityPolicy: + description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag." + type: string + nodeTaintsPolicy: + description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag." + type: string + topologyKey: + description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field. + type: string + whenUnsatisfiable: + description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.' + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array updateStrategy: description: PodDisruptionBudget defines the update strategy for the StatefulSet object. properties: 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 c69ae2c4d..928e575c2 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 @@ -516,6 +516,11 @@ spec: type: array type: object type: object + args: + description: Args to be used in the Restore container. + items: + type: string + type: array backoffLimit: default: 5 description: BackoffLimit defines the maximum number of attempts to successfully perform a Backup. @@ -568,6 +573,94 @@ spec: type: string description: NodeSelector to be used in the Restore Pod. type: object + 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." + 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 be set if type is "Localhost". Must NOT be set for any other type. + 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, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. 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. 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 resources: description: Resouces describes the compute resource requirements. properties: @@ -638,6 +731,9 @@ spec: endpoint: description: Endpoint is the S3 API endpoint without scheme. type: string + prefix: + description: Prefix allows backups to be placed under a specific prefix in the bucket. + type: string region: description: Region is the S3 region name to use. type: string @@ -702,6 +798,93 @@ spec: - endpoint - secretAccessKeySecretKeyRef type: object + securityContext: + 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.' + 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 be set if type is "Localhost". Must NOT be set for any other type. + 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. 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 targetRecoveryTime: description: TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective. It is used to determine the closest restoration source in time. format: date-time 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 f1118c050..921fd6d32 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 @@ -586,6 +586,94 @@ spec: - key type: object x-kubernetes-map-type: atomic + 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." + 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 be set if type is "Localhost". Must NOT be set for any other type. + 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, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. 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. 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 resources: description: Resouces describes the compute resource requirements. properties: @@ -644,6 +732,93 @@ spec: required: - cron type: object + securityContext: + 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.' + 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 be set if type is "Localhost". Must NOT be set for any other type. + 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. 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 sql: description: Sql is the script to be executed by the SqlJob. type: string diff --git a/crd-catalog/mattermost/mattermost-operator/installation.mattermost.com/v1beta1/mattermosts.yaml b/crd-catalog/mattermost/mattermost-operator/installation.mattermost.com/v1beta1/mattermosts.yaml index e3e7c6a6e..9f8ee9377 100644 --- a/crd-catalog/mattermost/mattermost-operator/installation.mattermost.com/v1beta1/mattermosts.yaml +++ b/crd-catalog/mattermost/mattermost-operator/installation.mattermost.com/v1beta1/mattermosts.yaml @@ -443,7 +443,7 @@ spec: description: PodExtensions specify custom extensions for Mattermost pods. This can be used for custom readiness checks etc. These settings generally don't need to be changed. properties: containerPorts: - description: Additional Container Ports injected to pod's main container. The setting does not override ContainerPorts defined by the Operator. + description: Additional Container Ports injected into pod's main container. The setting does not override ContainerPorts defined by the Operator. items: description: ContainerPort represents a network port in a single container. properties: @@ -470,7 +470,802 @@ spec: type: object type: array initContainers: - description: Additional InitContainers injected to pods. The setting does not override InitContainers defined by the Operator. + description: Additional InitContainers injected into pods. The setting does not override InitContainers defined by the Operator. + items: + description: A single application container that you want to run within a pod. + properties: + args: + description: 'Arguments to the entrypoint. The container image''s CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container''s environment. 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. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' + items: + type: string + type: array + command: + description: 'Entrypoint array. Not executed within a shell. The container image''s ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container''s environment. 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. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell' + items: + type: string + type: array + env: + description: List of environment variables to set in the container. Cannot be updated. + 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 + 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 + 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 + 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 + type: object + required: + - name + type: object + type: array + envFrom: + description: List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. + items: + description: EnvFromSource represents the source of a set of ConfigMaps + properties: + configMapRef: + description: The ConfigMap to select from + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the ConfigMap must be defined + type: boolean + type: object + prefix: + description: An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. + type: string + secretRef: + description: The Secret to select from + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret must be defined + type: boolean + type: object + type: object + type: array + image: + description: 'Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.' + type: string + imagePullPolicy: + description: 'Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images' + type: string + lifecycle: + description: Actions that the management system should take in response to container lifecycle events. Cannot be updated. + properties: + postStart: + description: 'PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' + properties: + exec: + description: Exec specifies the action to take. + properties: + command: + description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. + items: + type: string + type: array + type: object + httpGet: + description: HTTPGet specifies the http request to perform. + properties: + host: + description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + type: string + httpHeaders: + description: Custom headers to set in the request. HTTP allows repeated headers. + items: + description: HTTPHeader describes a custom header to be used in HTTP probes + properties: + name: + description: The header field name + type: string + value: + description: The header field value + type: string + required: + - name + - value + type: object + type: array + path: + description: Path to access on the HTTP server. + type: string + port: + anyOf: + - type: integer + - type: string + description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + scheme: + description: Scheme to use for connecting to the host. Defaults to HTTP. + type: string + required: + - port + type: object + tcpSocket: + description: Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + properties: + host: + description: 'Optional: Host name to connect to, defaults to the pod IP.' + type: string + port: + anyOf: + - type: integer + - type: string + description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + preStop: + description: 'PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod''s termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod''s termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks' + properties: + exec: + description: Exec specifies the action to take. + properties: + command: + description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. + items: + type: string + type: array + type: object + httpGet: + description: HTTPGet specifies the http request to perform. + properties: + host: + description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + type: string + httpHeaders: + description: Custom headers to set in the request. HTTP allows repeated headers. + items: + description: HTTPHeader describes a custom header to be used in HTTP probes + properties: + name: + description: The header field name + type: string + value: + description: The header field value + type: string + required: + - name + - value + type: object + type: array + path: + description: Path to access on the HTTP server. + type: string + port: + anyOf: + - type: integer + - type: string + description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + scheme: + description: Scheme to use for connecting to the host. Defaults to HTTP. + type: string + required: + - port + type: object + tcpSocket: + description: Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + properties: + host: + description: 'Optional: Host name to connect to, defaults to the pod IP.' + type: string + port: + anyOf: + - type: integer + - type: string + description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + required: + - port + type: object + type: object + type: object + livenessProbe: + description: 'Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + properties: + exec: + description: Exec specifies the action to take. + properties: + command: + description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. + items: + type: string + type: array + type: object + failureThreshold: + description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. + format: int32 + type: integer + grpc: + description: GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate. + properties: + port: + description: Port number of the gRPC service. Number must be in the range 1 to 65535. + format: int32 + type: integer + service: + description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC." + type: string + required: + - port + type: object + httpGet: + description: HTTPGet specifies the http request to perform. + properties: + host: + description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + type: string + httpHeaders: + description: Custom headers to set in the request. HTTP allows repeated headers. + items: + description: HTTPHeader describes a custom header to be used in HTTP probes + properties: + name: + description: The header field name + type: string + value: + description: The header field value + type: string + required: + - name + - value + type: object + type: array + path: + description: Path to access on the HTTP server. + type: string + port: + anyOf: + - type: integer + - type: string + description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + scheme: + description: Scheme to use for connecting to the host. Defaults to HTTP. + type: string + required: + - port + type: object + initialDelaySeconds: + description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + format: int32 + type: integer + periodSeconds: + description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. + format: int32 + type: integer + successThreshold: + description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. + format: int32 + type: integer + tcpSocket: + description: TCPSocket specifies an action involving a TCP port. + properties: + host: + description: 'Optional: Host name to connect to, defaults to the pod IP.' + type: string + port: + anyOf: + - type: integer + - type: string + description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. + format: int64 + type: integer + timeoutSeconds: + description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + format: int32 + type: integer + type: object + name: + description: Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated. + type: string + ports: + description: List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default "0.0.0.0" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated. + items: + description: ContainerPort represents a network port in a single container. + properties: + containerPort: + description: Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. + format: int32 + type: integer + name: + description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. + type: string + protocol: + default: TCP + description: Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-map-keys: + - containerPort + - protocol + x-kubernetes-list-type: map + readinessProbe: + description: 'Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + properties: + exec: + description: Exec specifies the action to take. + properties: + command: + description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. + items: + type: string + type: array + type: object + failureThreshold: + description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. + format: int32 + type: integer + grpc: + description: GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate. + properties: + port: + description: Port number of the gRPC service. Number must be in the range 1 to 65535. + format: int32 + type: integer + service: + description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC." + type: string + required: + - port + type: object + httpGet: + description: HTTPGet specifies the http request to perform. + properties: + host: + description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + type: string + httpHeaders: + description: Custom headers to set in the request. HTTP allows repeated headers. + items: + description: HTTPHeader describes a custom header to be used in HTTP probes + properties: + name: + description: The header field name + type: string + value: + description: The header field value + type: string + required: + - name + - value + type: object + type: array + path: + description: Path to access on the HTTP server. + type: string + port: + anyOf: + - type: integer + - type: string + description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + scheme: + description: Scheme to use for connecting to the host. Defaults to HTTP. + type: string + required: + - port + type: object + initialDelaySeconds: + description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + format: int32 + type: integer + periodSeconds: + description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. + format: int32 + type: integer + successThreshold: + description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. + format: int32 + type: integer + tcpSocket: + description: TCPSocket specifies an action involving a TCP port. + properties: + host: + description: 'Optional: Host name to connect to, defaults to the pod IP.' + type: string + port: + anyOf: + - type: integer + - type: string + description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. + format: int64 + type: integer + timeoutSeconds: + description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + format: int32 + type: integer + type: object + resources: + description: 'Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + 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." + items: + description: ResourceClaim references one entry in PodSpec.ResourceClaims. + properties: + name: + description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + 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. 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 + startupProbe: + description: 'StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod''s lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + properties: + exec: + description: Exec specifies the action to take. + properties: + command: + description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. + items: + type: string + type: array + type: object + failureThreshold: + description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. + format: int32 + type: integer + grpc: + description: GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate. + properties: + port: + description: Port number of the gRPC service. Number must be in the range 1 to 65535. + format: int32 + type: integer + service: + description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC." + type: string + required: + - port + type: object + httpGet: + description: HTTPGet specifies the http request to perform. + properties: + host: + description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + type: string + httpHeaders: + description: Custom headers to set in the request. HTTP allows repeated headers. + items: + description: HTTPHeader describes a custom header to be used in HTTP probes + properties: + name: + description: The header field name + type: string + value: + description: The header field value + type: string + required: + - name + - value + type: object + type: array + path: + description: Path to access on the HTTP server. + type: string + port: + anyOf: + - type: integer + - type: string + description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + scheme: + description: Scheme to use for connecting to the host. Defaults to HTTP. + type: string + required: + - port + type: object + initialDelaySeconds: + description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + format: int32 + type: integer + periodSeconds: + description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. + format: int32 + type: integer + successThreshold: + description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. + format: int32 + type: integer + tcpSocket: + description: TCPSocket specifies an action involving a TCP port. + properties: + host: + description: 'Optional: Host name to connect to, defaults to the pod IP.' + type: string + port: + anyOf: + - type: integer + - type: string + description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + x-kubernetes-int-or-string: true + required: + - port + type: object + terminationGracePeriodSeconds: + description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. + format: int64 + type: integer + timeoutSeconds: + description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes' + format: int32 + type: integer + type: object + stdin: + description: Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false. + type: boolean + stdinOnce: + description: Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false + type: boolean + terminationMessagePath: + description: 'Optional: Path at which the file to which the container''s termination message will be written is mounted into the container''s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.' + type: string + terminationMessagePolicy: + description: Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated. + type: string + tty: + description: Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false. + type: boolean + volumeDevices: + description: volumeDevices is the list of block devices to be used by the container. + items: + description: volumeDevice describes a mapping of a raw block device within a container. + properties: + devicePath: + description: devicePath is the path inside of the container that the device will be mapped to. + type: string + name: + description: name must match the name of a persistentVolumeClaim in the pod + type: string + required: + - devicePath + - name + type: object + type: array + volumeMounts: + description: Pod volumes to mount into the container's filesystem. Cannot be updated. + items: + description: VolumeMount describes a mounting of a Volume within a container. + properties: + mountPath: + description: Path within the container at which the volume should be mounted. Must not contain ':'. + type: string + mountPropagation: + description: mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. + type: string + name: + description: This must match the Name of a Volume. + type: string + readOnly: + description: Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. + type: boolean + subPath: + description: Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). + type: string + subPathExpr: + description: Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to "" (volume's root). SubPathExpr and SubPath are mutually exclusive. + type: string + required: + - mountPath + - name + type: object + type: array + workingDir: + description: Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated. + type: string + required: + - name + type: object + type: array + sidecarContainers: + description: 'Additional sidecar containers injected into pods. The setting does not override any sidecar containers defined by the Operator. Note that sidecars are injected as standard pod containers alongside the Mattermost application server. In the future, this may be migrated to use the currently-feature-gated init container method introduced in k8s v1.28: https://kubernetes.io/blog/2023/08/25/native-sidecar-containers/' items: description: A single application container that you want to run within a pod. properties: diff --git a/crd-catalog/nginxinc/kubernetes-ingress/appprotectdos.f5.com/v1beta1/dosprotectedresources.yaml b/crd-catalog/nginxinc/kubernetes-ingress/appprotectdos.f5.com/v1beta1/dosprotectedresources.yaml index 5066ba904..07296d7b8 100644 --- a/crd-catalog/nginxinc/kubernetes-ingress/appprotectdos.f5.com/v1beta1/dosprotectedresources.yaml +++ b/crd-catalog/nginxinc/kubernetes-ingress/appprotectdos.f5.com/v1beta1/dosprotectedresources.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: dosprotectedresources.appprotectdos.f5.com spec: group: appprotectdos.f5.com @@ -21,10 +21,19 @@ spec: description: DosProtectedResource defines a Dos protected resource. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object diff --git a/crd-catalog/nginxinc/kubernetes-ingress/externaldns.nginx.org/v1/dnsendpoints.yaml b/crd-catalog/nginxinc/kubernetes-ingress/externaldns.nginx.org/v1/dnsendpoints.yaml index 58115334e..70b0742ad 100644 --- a/crd-catalog/nginxinc/kubernetes-ingress/externaldns.nginx.org/v1/dnsendpoints.yaml +++ b/crd-catalog/nginxinc/kubernetes-ingress/externaldns.nginx.org/v1/dnsendpoints.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: dnsendpoints.externaldns.nginx.org spec: group: externaldns.nginx.org @@ -19,10 +19,19 @@ spec: description: DNSEndpoint is the CRD wrapper for Endpoint properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object diff --git a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/globalconfigurations.yaml b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/globalconfigurations.yaml index 9bb4d57a9..a3171dd5c 100644 --- a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/globalconfigurations.yaml +++ b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/globalconfigurations.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: globalconfigurations.k8s.nginx.org spec: group: k8s.nginx.org @@ -21,10 +21,19 @@ spec: description: GlobalConfiguration defines the GlobalConfiguration resource. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object diff --git a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/policies.yaml b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/policies.yaml index 81e1d968d..1f30e4097 100644 --- a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/policies.yaml +++ b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1/policies.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: policies.k8s.nginx.org spec: group: k8s.nginx.org @@ -29,15 +29,27 @@ spec: description: Policy defines a Policy for VirtualServer and VirtualServerRoute resources. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: PolicySpec is the spec of the Policy resource. The spec includes multiple fields, where each field represents a different policy. Only one policy (field) is allowed. + description: |- + PolicySpec is the spec of the Policy resource. + The spec includes multiple fields, where each field represents a different policy. + Only one policy (field) is allowed. properties: accessControl: description: AccessControl defines an access policy based on the source IP of a request. @@ -52,7 +64,9 @@ spec: type: array type: object basicAuth: - description: 'BasicAuth holds HTTP Basic authentication configuration policy status: preview' + description: |- + BasicAuth holds HTTP Basic authentication configuration + policy status: preview properties: realm: type: string 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 68611a357..1796155e1 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 @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: transportservers.k8s.nginx.org spec: group: k8s.nginx.org @@ -32,10 +32,19 @@ spec: description: TransportServer defines the TransportServer resource. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object 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 9273ae815..51d35621d 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 @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: virtualserverroutes.k8s.nginx.org spec: group: k8s.nginx.org @@ -42,10 +42,19 @@ spec: description: VirtualServerRoute defines the VirtualServerRoute resource. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object 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 9218c2df2..9ff0c81b0 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 @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: virtualservers.k8s.nginx.org spec: group: k8s.nginx.org @@ -42,10 +42,19 @@ spec: description: VirtualServer defines the VirtualServer resource. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -67,7 +76,9 @@ spec: providerSpecific: description: ProviderSpecific stores provider specific config items: - description: ProviderSpecificProperty defines specific property for using with ExternalDNS sub-resource. + description: |- + ProviderSpecificProperty defines specific property + for using with ExternalDNS sub-resource. properties: name: description: Name of the property diff --git a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1alpha1/globalconfigurations.yaml b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1alpha1/globalconfigurations.yaml index b96568083..943db28b7 100644 --- a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1alpha1/globalconfigurations.yaml +++ b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1alpha1/globalconfigurations.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: globalconfigurations.k8s.nginx.org spec: group: k8s.nginx.org @@ -21,10 +21,19 @@ spec: description: GlobalConfiguration defines the GlobalConfiguration resource. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object diff --git a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1alpha1/policies.yaml b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1alpha1/policies.yaml index 52ce9ddf9..2d2258978 100644 --- a/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1alpha1/policies.yaml +++ b/crd-catalog/nginxinc/kubernetes-ingress/k8s.nginx.org/v1alpha1/policies.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: policies.k8s.nginx.org spec: group: k8s.nginx.org @@ -21,15 +21,27 @@ spec: description: Policy defines a Policy for VirtualServer and VirtualServerRoute resources. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: PolicySpec is the spec of the Policy resource. The spec includes multiple fields, where each field represents a different policy. Only one policy (field) is allowed. + description: |- + PolicySpec is the spec of the Policy resource. + The spec includes multiple fields, where each field represents a different policy. + Only one policy (field) is allowed. properties: accessControl: description: AccessControl defines an access policy based on the source IP of a request. 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 e5686ba90..a8a450f40 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 @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: transportservers.k8s.nginx.org spec: group: k8s.nginx.org @@ -32,10 +32,19 @@ spec: description: TransportServer defines the TransportServer resource. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object diff --git a/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/nginxgateways.yaml b/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/nginxgateways.yaml index 29703a9bb..0f10b34ff 100644 --- a/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/nginxgateways.yaml +++ b/crd-catalog/nginxinc/nginx-kubernetes-gateway/gateway.nginx.org/v1alpha1/nginxgateways.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: nginxgateways.gateway.nginx.org spec: group: gateway.nginx.org @@ -19,10 +19,19 @@ spec: description: NginxGateway represents the dynamic configuration for an NGINX Gateway Fabric control plane. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -47,23 +56,35 @@ spec: properties: conditions: 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 }" + description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}" properties: lastTransitionTime: - description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: - description: message is a human readable message indicating details about the transition. This may be an empty string. + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. maxLength: 32768 type: string observedGeneration: - description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. format: int64 minimum: 0.0 type: integer reason: - description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ @@ -76,7 +97,12 @@ spec: - Unknown type: string type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/crd-catalog/open-telemetry/opentelemetry-operator/opentelemetry.io/v1alpha1/opentelemetrycollectors.yaml b/crd-catalog/open-telemetry/opentelemetry-operator/opentelemetry.io/v1alpha1/opentelemetrycollectors.yaml index e91ef8f48..c86e6c5cf 100644 --- a/crd-catalog/open-telemetry/opentelemetry-operator/opentelemetry.io/v1alpha1/opentelemetrycollectors.yaml +++ b/crd-catalog/open-telemetry/opentelemetry-operator/opentelemetry.io/v1alpha1/opentelemetrycollectors.yaml @@ -1615,6 +1615,29 @@ spec: - name type: object type: array + deploymentUpdateStrategy: + description: UpdateStrategy represents the strategy the operator will take replacing existing Deployment pods with new pods https://kubernetes. + properties: + rollingUpdate: + description: 'Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. --- TODO: Update this to follow our convention for oneOf, whatever we decide it to be.' + properties: + maxSurge: + anyOf: + - type: integer + - type: string + description: 'The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).' + x-kubernetes-int-or-string: true + maxUnavailable: + anyOf: + - type: integer + - type: string + description: 'The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).' + x-kubernetes-int-or-string: true + type: object + type: + description: Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. + type: string + type: object env: description: ENV vars to set on the OpenTelemetry Collector's Pods. These can then in certain cases be consumed in the config file for the Collector. items: @@ -3134,6 +3157,9 @@ spec: serviceAccount: description: ServiceAccount indicates the name of an existing service account to use with this instance. When set, the operator will not automatically create a ServiceAccount for the collector. type: string + shareProcessNamespace: + description: ShareProcessNamespace indicates if the pod's containers should share process namespace. + type: boolean targetAllocator: description: TargetAllocator indicates a value which determines whether to spawn a target allocation resource or not. properties: @@ -3752,6 +3778,7 @@ spec: type: object type: array filterStrategy: + default: relabel-config description: FilterStrategy determines how to filter targets before allocating them among the collectors. The only current option is relabel-config (drops targets based on prom relabel_config). type: string image: diff --git a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/scrapeconfigs.yaml b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/scrapeconfigs.yaml index 1c1dd168d..e0e28e3ff 100644 --- a/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/scrapeconfigs.yaml +++ b/crd-catalog/prometheus-operator/prometheus-operator/monitoring.coreos.com/v1alpha1/scrapeconfigs.yaml @@ -583,6 +583,9 @@ spec: x-kubernetes-map-type: atomic type: object type: array + enableCompression: + description: "When false, Prometheus will request uncompressed response from the scraped target. \n It requires Prometheus >= v2.49.0. \n If unset, Prometheus uses true by default." + type: boolean fileSDConfigs: description: FileSDConfigs defines a list of file service discovery configurations. items: 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 e8f5207e2..edd4551fc 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 @@ -646,6 +646,11 @@ spec: type: array type: object type: object + deployment_annotations: + additionalProperties: + type: string + description: Annotations for the api deployment + type: object env_vars: description: Environment variables to add to pulpcore-api container items: @@ -1759,6 +1764,11 @@ spec: type: array type: object type: object + deployment_annotations: + additionalProperties: + type: string + description: Annotations for the cache deployment + type: object enabled: default: true description: 'Defines if cache should be enabled. Default: true' @@ -2557,6 +2567,11 @@ spec: type: array type: object type: object + deployment_annotations: + additionalProperties: + type: string + description: Annotations for the content deployment + type: object env_vars: description: Environment variables to add to pulpcore-content container items: @@ -4497,6 +4512,11 @@ spec: web: description: Web defines desired state of pulpcore-web (reverse-proxy) resources properties: + deployment_annotations: + additionalProperties: + type: string + description: Annotations for the web deployment + type: object env_vars: description: Environment variables to add to pulpcore-web container items: @@ -5396,6 +5416,11 @@ spec: type: array type: object type: object + deployment_annotations: + additionalProperties: + type: string + description: Annotations for the worker deployment + type: object env_vars: description: Environment variables to add to pulpcore-worker container items: 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 72acd8108..f1047ef87 100644 --- a/crd-catalog/ray-project/kuberay/ray.io/v1/rayclusters.yaml +++ b/crd-catalog/ray-project/kuberay/ray.io/v1/rayclusters.yaml @@ -3765,6 +3765,10 @@ spec: default: 0 format: int32 type: integer + numOfHosts: + default: 1 + format: int32 + type: integer rayStartParams: additionalProperties: type: string 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 4b10d6fb3..172ef9b4d 100644 --- a/crd-catalog/ray-project/kuberay/ray.io/v1/rayjobs.yaml +++ b/crd-catalog/ray-project/kuberay/ray.io/v1/rayjobs.yaml @@ -3751,6 +3751,10 @@ spec: default: 0 format: int32 type: integer + numOfHosts: + default: 1 + format: int32 + type: integer rayStartParams: additionalProperties: type: string 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 9d070bc24..3736b096e 100644 --- a/crd-catalog/ray-project/kuberay/ray.io/v1/rayservices.yaml +++ b/crd-catalog/ray-project/kuberay/ray.io/v1/rayservices.yaml @@ -3736,6 +3736,10 @@ spec: default: 0 format: int32 type: integer + numOfHosts: + default: 1 + format: int32 + type: integer rayStartParams: additionalProperties: type: string @@ -7248,14 +7252,6 @@ spec: type: string type: object type: object - dashboardStatus: - properties: - healthLastUpdateTime: - format: date-time - type: string - isHealthy: - type: boolean - type: object rayClusterName: type: string rayClusterStatus: @@ -7352,14 +7348,6 @@ spec: type: string type: object type: object - dashboardStatus: - properties: - healthLastUpdateTime: - format: date-time - type: string - isHealthy: - type: boolean - type: object rayClusterName: type: string rayClusterStatus: diff --git a/crd-catalog/ray-project/kuberay/ray.io/v1alpha1/rayservices.yaml b/crd-catalog/ray-project/kuberay/ray.io/v1alpha1/rayservices.yaml index b7bd2bc0d..fa77a3436 100644 --- a/crd-catalog/ray-project/kuberay/ray.io/v1alpha1/rayservices.yaml +++ b/crd-catalog/ray-project/kuberay/ray.io/v1alpha1/rayservices.yaml @@ -7248,14 +7248,6 @@ spec: type: string type: object type: object - dashboardStatus: - properties: - healthLastUpdateTime: - format: date-time - type: string - isHealthy: - type: boolean - type: object rayClusterName: type: string rayClusterStatus: @@ -7352,14 +7344,6 @@ spec: type: string type: object type: object - dashboardStatus: - properties: - healthLastUpdateTime: - format: date-time - type: string - isHealthy: - type: boolean - type: object rayClusterName: type: string rayClusterStatus: diff --git a/crd-catalog/solo-io/gloo/gloo.solo.io/v1/settings.yaml b/crd-catalog/solo-io/gloo/gloo.solo.io/v1/settings.yaml index 292acf260..bb23bb7f8 100644 --- a/crd-catalog/solo-io/gloo/gloo.solo.io/v1/settings.yaml +++ b/crd-catalog/solo-io/gloo/gloo.solo.io/v1/settings.yaml @@ -792,11 +792,15 @@ spec: type: object grafanaIntegration: properties: + dashboardPrefix: + type: string defaultDashboardFolderId: maximum: 4294967295.0 minimum: 0.0 nullable: true type: integer + extraMetricQueryParameters: + type: string type: object type: object ratelimit: diff --git a/kube-custom-resources-rs/src/acme_cert_manager_io/v1/challenges.rs b/kube-custom-resources-rs/src/acme_cert_manager_io/v1/challenges.rs index ed58e0425..bd21435f0 100644 --- a/kube-custom-resources-rs/src/acme_cert_manager_io/v1/challenges.rs +++ b/kube-custom-resources-rs/src/acme_cert_manager_io/v1/challenges.rs @@ -168,10 +168,10 @@ pub struct ChallengeSolverDns01AkamaiClientTokenSecretRef { /// Use the Microsoft Azure DNS API to manage DNS01 challenge records. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ChallengeSolverDns01AzureDns { - /// if both this and ClientSecret are left unset MSI will be used + /// Auth: Azure Service Principal: The ClientID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientSecret and TenantID must also be set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientID")] pub client_id: Option, - /// if both this and ClientID are left unset MSI will be used + /// Auth: Azure Service Principal: A reference to a Secret containing the password associated with the Service Principal. If set, ClientID and TenantID must also be set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientSecretSecretRef")] pub client_secret_secret_ref: Option, /// name of the Azure environment (default AzurePublicCloud) @@ -180,7 +180,7 @@ pub struct ChallengeSolverDns01AzureDns { /// name of the DNS zone that should be used #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostedZoneName")] pub hosted_zone_name: Option, - /// managed identity configuration, can not be used at the same time as clientID, clientSecretSecretRef or tenantID + /// Auth: Azure Workload Identity or Azure Managed Service Identity: Settings to enable Azure Workload Identity or Azure Managed Service Identity If set, ClientID, ClientSecret and TenantID must not be set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "managedIdentity")] pub managed_identity: Option, /// resource group the DNS zone is located in @@ -189,12 +189,12 @@ pub struct ChallengeSolverDns01AzureDns { /// ID of the Azure subscription #[serde(rename = "subscriptionID")] pub subscription_id: String, - /// when specifying ClientID and ClientSecret then this field is also needed + /// Auth: Azure Service Principal: The TenantID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientID and ClientSecret must also be set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "tenantID")] pub tenant_id: Option, } -/// if both this and ClientID are left unset MSI will be used +/// Auth: Azure Service Principal: A reference to a Secret containing the password associated with the Service Principal. If set, ClientID and TenantID must also be set. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ChallengeSolverDns01AzureDnsClientSecretSecretRef { /// The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. @@ -214,13 +214,13 @@ pub enum ChallengeSolverDns01AzureDnsEnvironment { AzureUsGovernmentCloud, } -/// managed identity configuration, can not be used at the same time as clientID, clientSecretSecretRef or tenantID +/// Auth: Azure Workload Identity or Azure Managed Service Identity: Settings to enable Azure Workload Identity or Azure Managed Service Identity If set, ClientID, ClientSecret and TenantID must not be set. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ChallengeSolverDns01AzureDnsManagedIdentity { /// client ID of the managed identity, can not be used at the same time as resourceID #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientID")] pub client_id: Option, - /// resource ID of the managed identity, can not be used at the same time as clientID + /// resource ID of the managed identity, can not be used at the same time as clientID Cannot be used for Azure Managed Service Identity #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceID")] pub resource_id: Option, } diff --git a/kube-custom-resources-rs/src/addons_cluster_x_k8s_io/v1alpha4/clusterresourcesets.rs b/kube-custom-resources-rs/src/addons_cluster_x_k8s_io/v1alpha4/clusterresourcesets.rs index 74115a0bc..2595648d9 100644 --- a/kube-custom-resources-rs/src/addons_cluster_x_k8s_io/v1alpha4/clusterresourcesets.rs +++ b/kube-custom-resources-rs/src/addons_cluster_x_k8s_io/v1alpha4/clusterresourcesets.rs @@ -13,7 +13,10 @@ use std::collections::BTreeMap; #[kube(status = "ClusterResourceSetStatus")] #[kube(schema = "disabled")] pub struct ClusterResourceSetSpec { - /// Label selector for Clusters. The Clusters that are selected by this will be the ones affected by this ClusterResourceSet. It must match the Cluster labels. This field is immutable. Label selector cannot be empty. + /// Label selector for Clusters. The Clusters that are + /// selected by this will be the ones affected by this ClusterResourceSet. + /// It must match the Cluster labels. This field is immutable. + /// Label selector cannot be empty. #[serde(rename = "clusterSelector")] pub cluster_selector: ClusterResourceSetClusterSelector, /// Resources is a list of Secrets/ConfigMaps where each contains 1 or more resources to be applied to remote clusters. @@ -24,25 +27,35 @@ pub struct ClusterResourceSetSpec { pub strategy: Option, } -/// Label selector for Clusters. The Clusters that are selected by this will be the ones affected by this ClusterResourceSet. It must match the Cluster labels. This field is immutable. Label selector cannot be empty. +/// Label selector for Clusters. The Clusters that are +/// selected by this will be the ones affected by this ClusterResourceSet. +/// It must match the Cluster labels. This field is immutable. +/// Label selector cannot be empty. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterResourceSetClusterSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] pub match_expressions: Option>, - /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + /// map is equivalent to an element of matchExpressions, whose key field is "key", the + /// operator is "In", and the values array contains only "value". The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] pub match_labels: Option>, } -/// A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +/// A label selector requirement is a selector that contains values, a key, and an operator that +/// relates the key and values. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterResourceSetClusterSelectorMatchExpressions { /// key is the label key that the selector applies to. pub key: String, - /// operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + /// operator represents a key's relationship to a set of values. + /// Valid operators are In, NotIn, Exists and DoesNotExist. pub operator: String, - /// values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + /// values is an array of string values. If the operator is In or NotIn, + /// the values array must be non-empty. If the operator is Exists or DoesNotExist, + /// the values array must be empty. This array is replaced during a strategic + /// merge patch. #[serde(default, skip_serializing_if = "Option::is_none")] pub values: Option>, } @@ -83,21 +96,30 @@ pub struct ClusterResourceSetStatus { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterResourceSetStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastTransitionTime")] pub last_transition_time: Option, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } diff --git a/kube-custom-resources-rs/src/addons_cluster_x_k8s_io/v1beta1/clusterresourcesets.rs b/kube-custom-resources-rs/src/addons_cluster_x_k8s_io/v1beta1/clusterresourcesets.rs index 14660dd6f..a48d389cd 100644 --- a/kube-custom-resources-rs/src/addons_cluster_x_k8s_io/v1beta1/clusterresourcesets.rs +++ b/kube-custom-resources-rs/src/addons_cluster_x_k8s_io/v1beta1/clusterresourcesets.rs @@ -13,7 +13,10 @@ use std::collections::BTreeMap; #[kube(status = "ClusterResourceSetStatus")] #[kube(schema = "disabled")] pub struct ClusterResourceSetSpec { - /// Label selector for Clusters. The Clusters that are selected by this will be the ones affected by this ClusterResourceSet. It must match the Cluster labels. This field is immutable. Label selector cannot be empty. + /// Label selector for Clusters. The Clusters that are + /// selected by this will be the ones affected by this ClusterResourceSet. + /// It must match the Cluster labels. This field is immutable. + /// Label selector cannot be empty. #[serde(rename = "clusterSelector")] pub cluster_selector: ClusterResourceSetClusterSelector, /// Resources is a list of Secrets/ConfigMaps where each contains 1 or more resources to be applied to remote clusters. @@ -24,25 +27,35 @@ pub struct ClusterResourceSetSpec { pub strategy: Option, } -/// Label selector for Clusters. The Clusters that are selected by this will be the ones affected by this ClusterResourceSet. It must match the Cluster labels. This field is immutable. Label selector cannot be empty. +/// Label selector for Clusters. The Clusters that are +/// selected by this will be the ones affected by this ClusterResourceSet. +/// It must match the Cluster labels. This field is immutable. +/// Label selector cannot be empty. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterResourceSetClusterSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] pub match_expressions: Option>, - /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + /// map is equivalent to an element of matchExpressions, whose key field is "key", the + /// operator is "In", and the values array contains only "value". The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] pub match_labels: Option>, } -/// A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +/// A label selector requirement is a selector that contains values, a key, and an operator that +/// relates the key and values. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterResourceSetClusterSelectorMatchExpressions { /// key is the label key that the selector applies to. pub key: String, - /// operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + /// operator represents a key's relationship to a set of values. + /// Valid operators are In, NotIn, Exists and DoesNotExist. pub operator: String, - /// values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + /// values is an array of string values. If the operator is In or NotIn, + /// the values array must be non-empty. If the operator is Exists or DoesNotExist, + /// the values array must be empty. This array is replaced during a strategic + /// merge patch. #[serde(default, skip_serializing_if = "Option::is_none")] pub values: Option>, } @@ -84,21 +97,30 @@ pub struct ClusterResourceSetStatus { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterResourceSetStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } diff --git a/kube-custom-resources-rs/src/apisix_apache_org/v2/apisixroutes.rs b/kube-custom-resources-rs/src/apisix_apache_org/v2/apisixroutes.rs index 387b4cf9d..2b8927b3b 100644 --- a/kube-custom-resources-rs/src/apisix_apache_org/v2/apisixroutes.rs +++ b/kube-custom-resources-rs/src/apisix_apache_org/v2/apisixroutes.rs @@ -34,6 +34,8 @@ pub struct ApisixRouteHttp { #[serde(default, skip_serializing_if = "Option::is_none")] pub plugin_config_name: Option, #[serde(default, skip_serializing_if = "Option::is_none")] + pub plugin_config_namespace: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] pub plugins: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] pub priority: Option, 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 3f9e7236b..bfc2bb4c5 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 @@ -158,9 +158,6 @@ pub struct ClusterComponentSpecs { pub monitor: Option, /// name defines cluster's component name, this name is also part of Service DNS name, so this name will comply with IANA Service Naming rule. pub name: String, - /// 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, /// Nodes defines the list of nodes that pods can schedule If the RsmTransformPolicy is specified as ToPod,the list of nodes will be used. If the list of nodes is empty, no specific node will be assigned. However, if the list of node is filled, all pods will be evenly scheduled across the nodes in the list. #[serde(default, skip_serializing_if = "Option::is_none")] pub nodes: Option>, @@ -190,7 +187,7 @@ pub struct ClusterComponentSpecs { /// Component tolerations will override ClusterSpec.Tolerations if specified. #[serde(default, skip_serializing_if = "Option::is_none")] pub tolerations: Option>, - /// updateStrategy defines the update strategy for the component. + /// updateStrategy defines the update strategy for the component. Not supported. #[serde(default, skip_serializing_if = "Option::is_none", rename = "updateStrategy")] pub update_strategy: Option, /// userResourceRefs defines the user-defined volumes. diff --git a/kube-custom-resources-rs/src/camel_apache_org/v1/builds.rs b/kube-custom-resources-rs/src/camel_apache_org/v1/builds.rs index 49fe34ad1..8c2d7defe 100644 --- a/kube-custom-resources-rs/src/camel_apache_org/v1/builds.rs +++ b/kube-custom-resources-rs/src/camel_apache_org/v1/builds.rs @@ -88,7 +88,7 @@ pub enum BuildConfigurationStrategy { /// Task represents the abstract task. Only one of the task should be configured to represent the specific task chosen. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct BuildTasks { - /// a BuildahTask, for Buildah strategy Deprecated: use spectrum, jib or s2i instead + /// a BuildahTask, for Buildah strategy Deprecated: use spectrum, jib, s2i or a custom publishing strategy instead #[serde(default, skip_serializing_if = "Option::is_none")] pub buildah: Option, /// a BuilderTask, used to generate and build the project @@ -100,7 +100,7 @@ pub struct BuildTasks { /// a JibTask, for Jib strategy #[serde(default, skip_serializing_if = "Option::is_none")] pub jib: Option, - /// a KanikoTask, for Kaniko strategy Deprecated: use spectrum, jib or s2i instead + /// a KanikoTask, for Kaniko strategy Deprecated: use spectrum, jib, s2i or a custom publishing strategy instead #[serde(default, skip_serializing_if = "Option::is_none")] pub kaniko: Option, /// Application pre publishing a PackageTask, used to package the project @@ -114,7 +114,7 @@ pub struct BuildTasks { pub spectrum: Option, } -/// a BuildahTask, for Buildah strategy Deprecated: use spectrum, jib or s2i instead +/// a BuildahTask, for Buildah strategy Deprecated: use spectrum, jib, s2i or a custom publishing strategy instead #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct BuildTasksBuildah { /// base image layer @@ -653,6 +653,12 @@ pub struct BuildTasksCustom { /// name of the task #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, + /// the desired image build name + #[serde(default, skip_serializing_if = "Option::is_none", rename = "publishingImage")] + pub publishing_image: Option, + /// the user id used to run the container + #[serde(default, skip_serializing_if = "Option::is_none", rename = "userId")] + pub user_id: Option, } /// The configuration that should be used to perform the Build. @@ -802,7 +808,7 @@ pub struct BuildTasksJibRegistry { pub secret: Option, } -/// a KanikoTask, for Kaniko strategy Deprecated: use spectrum, jib or s2i instead +/// a KanikoTask, for Kaniko strategy Deprecated: use spectrum, jib, s2i or a custom publishing strategy instead #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct BuildTasksKaniko { /// base image layer 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 fe31b36fb..b530d3d8b 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 @@ -49,6 +49,8 @@ pub struct CanarySpec { pub exec: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] pub folder: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gitProtocol")] + pub git_protocol: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] pub github: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -3911,6 +3913,188 @@ pub struct CanaryFolderTransform { pub template: Option, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocol { + /// Description for the check + #[serde(default, skip_serializing_if = "Option::is_none")] + pub description: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub display: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub filename: Option, + /// Icon for overwriting default icon on the dashboard + #[serde(default, skip_serializing_if = "Option::is_none")] + pub icon: Option, + /// Labels for the check + #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + /// Metrics to expose from check results + #[serde(default, skip_serializing_if = "Option::is_none")] + pub metrics: Option>, + /// Name of the check + pub name: String, + /// Namespace to insert the check into, if different to the namespace the canary is defined, e.g. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, + pub password: CanaryGitProtocolPassword, + pub repository: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub test: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub transform: Option, + /// Transformed checks have a delete strategy on deletion they can either be marked healthy, unhealthy or left as is + #[serde(default, skip_serializing_if = "Option::is_none", rename = "transformDeleteStrategy")] + pub transform_delete_strategy: Option, + pub username: CanaryGitProtocolUsername, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolDisplay { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub expr: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub javascript: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "jsonPath")] + pub json_path: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub template: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolMetrics { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub labels: Option>, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolMetricsLabels { + pub name: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "valueExpr")] + pub value_expr: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolPassword { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")] + pub value_from: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolPasswordValueFrom { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")] + pub config_map_key_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "helmRef")] + pub helm_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")] + pub secret_key_ref: Option, + /// ServiceAccount specifies the service account whose token should be fetched + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccount")] + pub service_account: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolPasswordValueFromConfigMapKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolPasswordValueFromHelmRef { + /// Key is a JSONPath expression used to fetch the key from the merged JSON. + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolPasswordValueFromSecretKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolTest { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub expr: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub javascript: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "jsonPath")] + pub json_path: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub template: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolTransform { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub expr: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub javascript: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "jsonPath")] + pub json_path: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub template: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolUsername { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub value: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")] + pub value_from: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolUsernameValueFrom { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")] + pub config_map_key_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "helmRef")] + pub helm_ref: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")] + pub secret_key_ref: Option, + /// ServiceAccount specifies the service account whose token should be fetched + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccount")] + pub service_account: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolUsernameValueFromConfigMapKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolUsernameValueFromHelmRef { + /// Key is a JSONPath expression used to fetch the key from the merged JSON. + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct CanaryGitProtocolUsernameValueFromSecretKeyRef { + pub key: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, +} + #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct CanaryGithub { #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/kube-custom-resources-rs/src/cert_manager_io/v1/clusterissuers.rs b/kube-custom-resources-rs/src/cert_manager_io/v1/clusterissuers.rs index 76353d299..648063f66 100644 --- a/kube-custom-resources-rs/src/cert_manager_io/v1/clusterissuers.rs +++ b/kube-custom-resources-rs/src/cert_manager_io/v1/clusterissuers.rs @@ -226,10 +226,10 @@ pub struct ClusterIssuerAcmeSolversDns01AkamaiClientTokenSecretRef { /// Use the Microsoft Azure DNS API to manage DNS01 challenge records. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterIssuerAcmeSolversDns01AzureDns { - /// if both this and ClientSecret are left unset MSI will be used + /// Auth: Azure Service Principal: The ClientID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientSecret and TenantID must also be set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientID")] pub client_id: Option, - /// if both this and ClientID are left unset MSI will be used + /// Auth: Azure Service Principal: A reference to a Secret containing the password associated with the Service Principal. If set, ClientID and TenantID must also be set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientSecretSecretRef")] pub client_secret_secret_ref: Option, /// name of the Azure environment (default AzurePublicCloud) @@ -238,7 +238,7 @@ pub struct ClusterIssuerAcmeSolversDns01AzureDns { /// name of the DNS zone that should be used #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostedZoneName")] pub hosted_zone_name: Option, - /// managed identity configuration, can not be used at the same time as clientID, clientSecretSecretRef or tenantID + /// Auth: Azure Workload Identity or Azure Managed Service Identity: Settings to enable Azure Workload Identity or Azure Managed Service Identity If set, ClientID, ClientSecret and TenantID must not be set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "managedIdentity")] pub managed_identity: Option, /// resource group the DNS zone is located in @@ -247,12 +247,12 @@ pub struct ClusterIssuerAcmeSolversDns01AzureDns { /// ID of the Azure subscription #[serde(rename = "subscriptionID")] pub subscription_id: String, - /// when specifying ClientID and ClientSecret then this field is also needed + /// Auth: Azure Service Principal: The TenantID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientID and ClientSecret must also be set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "tenantID")] pub tenant_id: Option, } -/// if both this and ClientID are left unset MSI will be used +/// Auth: Azure Service Principal: A reference to a Secret containing the password associated with the Service Principal. If set, ClientID and TenantID must also be set. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterIssuerAcmeSolversDns01AzureDnsClientSecretSecretRef { /// The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. @@ -272,13 +272,13 @@ pub enum ClusterIssuerAcmeSolversDns01AzureDnsEnvironment { AzureUsGovernmentCloud, } -/// managed identity configuration, can not be used at the same time as clientID, clientSecretSecretRef or tenantID +/// Auth: Azure Workload Identity or Azure Managed Service Identity: Settings to enable Azure Workload Identity or Azure Managed Service Identity If set, ClientID, ClientSecret and TenantID must not be set. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct ClusterIssuerAcmeSolversDns01AzureDnsManagedIdentity { /// client ID of the managed identity, can not be used at the same time as resourceID #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientID")] pub client_id: Option, - /// resource ID of the managed identity, can not be used at the same time as clientID + /// resource ID of the managed identity, can not be used at the same time as clientID Cannot be used for Azure Managed Service Identity #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceID")] pub resource_id: Option, } diff --git a/kube-custom-resources-rs/src/cert_manager_io/v1/issuers.rs b/kube-custom-resources-rs/src/cert_manager_io/v1/issuers.rs index 59528288e..08ee6ed21 100644 --- a/kube-custom-resources-rs/src/cert_manager_io/v1/issuers.rs +++ b/kube-custom-resources-rs/src/cert_manager_io/v1/issuers.rs @@ -227,10 +227,10 @@ pub struct IssuerAcmeSolversDns01AkamaiClientTokenSecretRef { /// Use the Microsoft Azure DNS API to manage DNS01 challenge records. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct IssuerAcmeSolversDns01AzureDns { - /// if both this and ClientSecret are left unset MSI will be used + /// Auth: Azure Service Principal: The ClientID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientSecret and TenantID must also be set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientID")] pub client_id: Option, - /// if both this and ClientID are left unset MSI will be used + /// Auth: Azure Service Principal: A reference to a Secret containing the password associated with the Service Principal. If set, ClientID and TenantID must also be set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientSecretSecretRef")] pub client_secret_secret_ref: Option, /// name of the Azure environment (default AzurePublicCloud) @@ -239,7 +239,7 @@ pub struct IssuerAcmeSolversDns01AzureDns { /// name of the DNS zone that should be used #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostedZoneName")] pub hosted_zone_name: Option, - /// managed identity configuration, can not be used at the same time as clientID, clientSecretSecretRef or tenantID + /// Auth: Azure Workload Identity or Azure Managed Service Identity: Settings to enable Azure Workload Identity or Azure Managed Service Identity If set, ClientID, ClientSecret and TenantID must not be set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "managedIdentity")] pub managed_identity: Option, /// resource group the DNS zone is located in @@ -248,12 +248,12 @@ pub struct IssuerAcmeSolversDns01AzureDns { /// ID of the Azure subscription #[serde(rename = "subscriptionID")] pub subscription_id: String, - /// when specifying ClientID and ClientSecret then this field is also needed + /// Auth: Azure Service Principal: The TenantID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientID and ClientSecret must also be set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "tenantID")] pub tenant_id: Option, } -/// if both this and ClientID are left unset MSI will be used +/// Auth: Azure Service Principal: A reference to a Secret containing the password associated with the Service Principal. If set, ClientID and TenantID must also be set. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct IssuerAcmeSolversDns01AzureDnsClientSecretSecretRef { /// The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. @@ -273,13 +273,13 @@ pub enum IssuerAcmeSolversDns01AzureDnsEnvironment { AzureUsGovernmentCloud, } -/// managed identity configuration, can not be used at the same time as clientID, clientSecretSecretRef or tenantID +/// Auth: Azure Workload Identity or Azure Managed Service Identity: Settings to enable Azure Workload Identity or Azure Managed Service Identity If set, ClientID, ClientSecret and TenantID must not be set. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct IssuerAcmeSolversDns01AzureDnsManagedIdentity { /// client ID of the managed identity, can not be used at the same time as resourceID #[serde(default, skip_serializing_if = "Option::is_none", rename = "clientID")] pub client_id: Option, - /// resource ID of the managed identity, can not be used at the same time as clientID + /// resource ID of the managed identity, can not be used at the same time as clientID Cannot be used for Azure Managed Service Identity #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceID")] pub resource_id: Option, } diff --git a/kube-custom-resources-rs/src/cilium_io/v2/ciliumclusterwidenetworkpolicies.rs b/kube-custom-resources-rs/src/cilium_io/v2/ciliumclusterwidenetworkpolicies.rs index f80c496db..b4c00c705 100644 --- a/kube-custom-resources-rs/src/cilium_io/v2/ciliumclusterwidenetworkpolicies.rs +++ b/kube-custom-resources-rs/src/cilium_io/v2/ciliumclusterwidenetworkpolicies.rs @@ -235,14 +235,14 @@ pub struct CiliumClusterwideNetworkPolicyEgressToPorts { /// listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumClusterwideNetworkPolicyEgressToPortsListener { - /// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + /// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[serde(rename = "envoyConfig")] pub envoy_config: CiliumClusterwideNetworkPolicyEgressToPortsListenerEnvoyConfig, /// Name is the name of the listener. pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumClusterwideNetworkPolicyEgressToPortsListenerEnvoyConfig { /// Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. @@ -252,7 +252,7 @@ pub struct CiliumClusterwideNetworkPolicyEgressToPortsListenerEnvoyConfig { pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum CiliumClusterwideNetworkPolicyEgressToPortsListenerEnvoyConfigKind { CiliumEnvoyConfig, @@ -1043,14 +1043,14 @@ pub struct CiliumClusterwideNetworkPolicyIngressToPorts { /// listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumClusterwideNetworkPolicyIngressToPortsListener { - /// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + /// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[serde(rename = "envoyConfig")] pub envoy_config: CiliumClusterwideNetworkPolicyIngressToPortsListenerEnvoyConfig, /// Name is the name of the listener. pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumClusterwideNetworkPolicyIngressToPortsListenerEnvoyConfig { /// Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. @@ -1060,7 +1060,7 @@ pub struct CiliumClusterwideNetworkPolicyIngressToPortsListenerEnvoyConfig { pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum CiliumClusterwideNetworkPolicyIngressToPortsListenerEnvoyConfigKind { CiliumEnvoyConfig, @@ -1721,14 +1721,14 @@ pub struct CiliumClusterwideNetworkPolicysEgressToPorts { /// listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumClusterwideNetworkPolicysEgressToPortsListener { - /// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + /// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[serde(rename = "envoyConfig")] pub envoy_config: CiliumClusterwideNetworkPolicysEgressToPortsListenerEnvoyConfig, /// Name is the name of the listener. pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumClusterwideNetworkPolicysEgressToPortsListenerEnvoyConfig { /// Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. @@ -1738,7 +1738,7 @@ pub struct CiliumClusterwideNetworkPolicysEgressToPortsListenerEnvoyConfig { pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum CiliumClusterwideNetworkPolicysEgressToPortsListenerEnvoyConfigKind { CiliumEnvoyConfig, @@ -2529,14 +2529,14 @@ pub struct CiliumClusterwideNetworkPolicysIngressToPorts { /// listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumClusterwideNetworkPolicysIngressToPortsListener { - /// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + /// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[serde(rename = "envoyConfig")] pub envoy_config: CiliumClusterwideNetworkPolicysIngressToPortsListenerEnvoyConfig, /// Name is the name of the listener. pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumClusterwideNetworkPolicysIngressToPortsListenerEnvoyConfig { /// Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. @@ -2546,7 +2546,7 @@ pub struct CiliumClusterwideNetworkPolicysIngressToPortsListenerEnvoyConfig { pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum CiliumClusterwideNetworkPolicysIngressToPortsListenerEnvoyConfigKind { CiliumEnvoyConfig, diff --git a/kube-custom-resources-rs/src/cilium_io/v2/ciliumnetworkpolicies.rs b/kube-custom-resources-rs/src/cilium_io/v2/ciliumnetworkpolicies.rs index 479ef8da1..4eb8cae4d 100644 --- a/kube-custom-resources-rs/src/cilium_io/v2/ciliumnetworkpolicies.rs +++ b/kube-custom-resources-rs/src/cilium_io/v2/ciliumnetworkpolicies.rs @@ -236,14 +236,14 @@ pub struct CiliumNetworkPolicyEgressToPorts { /// listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumNetworkPolicyEgressToPortsListener { - /// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + /// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[serde(rename = "envoyConfig")] pub envoy_config: CiliumNetworkPolicyEgressToPortsListenerEnvoyConfig, /// Name is the name of the listener. pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumNetworkPolicyEgressToPortsListenerEnvoyConfig { /// Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. @@ -253,7 +253,7 @@ pub struct CiliumNetworkPolicyEgressToPortsListenerEnvoyConfig { pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum CiliumNetworkPolicyEgressToPortsListenerEnvoyConfigKind { CiliumEnvoyConfig, @@ -1044,14 +1044,14 @@ pub struct CiliumNetworkPolicyIngressToPorts { /// listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumNetworkPolicyIngressToPortsListener { - /// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + /// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[serde(rename = "envoyConfig")] pub envoy_config: CiliumNetworkPolicyIngressToPortsListenerEnvoyConfig, /// Name is the name of the listener. pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumNetworkPolicyIngressToPortsListenerEnvoyConfig { /// Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. @@ -1061,7 +1061,7 @@ pub struct CiliumNetworkPolicyIngressToPortsListenerEnvoyConfig { pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum CiliumNetworkPolicyIngressToPortsListenerEnvoyConfigKind { CiliumEnvoyConfig, @@ -1722,14 +1722,14 @@ pub struct CiliumNetworkPolicysEgressToPorts { /// listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumNetworkPolicysEgressToPortsListener { - /// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + /// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[serde(rename = "envoyConfig")] pub envoy_config: CiliumNetworkPolicysEgressToPortsListenerEnvoyConfig, /// Name is the name of the listener. pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumNetworkPolicysEgressToPortsListenerEnvoyConfig { /// Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. @@ -1739,7 +1739,7 @@ pub struct CiliumNetworkPolicysEgressToPortsListenerEnvoyConfig { pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum CiliumNetworkPolicysEgressToPortsListenerEnvoyConfigKind { CiliumEnvoyConfig, @@ -2530,14 +2530,14 @@ pub struct CiliumNetworkPolicysIngressToPorts { /// listener specifies the name of a custom Envoy listener to which this traffic should be redirected to. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumNetworkPolicysIngressToPortsListener { - /// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. + /// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[serde(rename = "envoyConfig")] pub envoy_config: CiliumNetworkPolicysIngressToPortsListenerEnvoyConfig, /// Name is the name of the listener. pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct CiliumNetworkPolicysIngressToPortsListenerEnvoyConfig { /// Kind is the resource type being referred to. Defaults to CiliumEnvoyConfig or CiliumClusterwideEnvoyConfig for CiliumNetworkPolicy and CiliumClusterwideNetworkPolicy, respectively. The only case this is currently explicitly needed is when referring to a CiliumClusterwideEnvoyConfig from CiliumNetworkPolicy, as using a namespaced listener from a cluster scoped policy is not allowed. @@ -2547,7 +2547,7 @@ pub struct CiliumNetworkPolicysIngressToPortsListenerEnvoyConfig { pub name: String, } -/// EnvoyConfig is a reference to the CEC or CCNP resource in which the listener is defined. +/// EnvoyConfig is a reference to the CEC or CCEC resource in which the listener is defined. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum CiliumNetworkPolicysIngressToPortsListenerEnvoyConfigKind { CiliumEnvoyConfig, diff --git a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/clusterclasses.rs b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/clusterclasses.rs index ce6cbf090..0ad5cdce6 100644 --- a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/clusterclasses.rs +++ b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/clusterclasses.rs @@ -12,244 +12,368 @@ use std::collections::BTreeMap; #[kube(namespaced)] #[kube(schema = "disabled")] pub struct ClusterClassSpec { - /// ControlPlane is a reference to a local struct that holds the details for provisioning the Control Plane for the Cluster. + /// ControlPlane is a reference to a local struct that holds the details + /// for provisioning the Control Plane for the Cluster. #[serde(default, skip_serializing_if = "Option::is_none", rename = "controlPlane")] pub control_plane: Option, - /// Infrastructure is a reference to a provider-specific template that holds the details for provisioning infrastructure specific cluster for the underlying provider. The underlying provider is responsible for the implementation of the template to an infrastructure cluster. + /// Infrastructure is a reference to a provider-specific template that holds + /// the details for provisioning infrastructure specific cluster + /// for the underlying provider. + /// The underlying provider is responsible for the implementation + /// of the template to an infrastructure cluster. #[serde(default, skip_serializing_if = "Option::is_none")] pub infrastructure: Option, - /// Workers describes the worker nodes for the cluster. It is a collection of node types which can be used to create the worker nodes of the cluster. + /// Workers describes the worker nodes for the cluster. + /// It is a collection of node types which can be used to create + /// the worker nodes of the cluster. #[serde(default, skip_serializing_if = "Option::is_none")] pub workers: Option, } -/// ControlPlane is a reference to a local struct that holds the details for provisioning the Control Plane for the Cluster. +/// ControlPlane is a reference to a local struct that holds the details +/// for provisioning the Control Plane for the Cluster. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassControlPlane { - /// MachineTemplate defines the metadata and infrastructure information for control plane machines. - /// This field is supported if and only if the control plane provider template referenced above is Machine based and supports setting replicas. + /// MachineTemplate defines the metadata and infrastructure information + /// for control plane machines. + /// + /// + /// This field is supported if and only if the control plane provider template + /// referenced above is Machine based and supports setting replicas. #[serde(default, skip_serializing_if = "Option::is_none", rename = "machineInfrastructure")] pub machine_infrastructure: Option, - /// Metadata is the metadata applied to the machines of the ControlPlane. At runtime this metadata is merged with the corresponding metadata from the topology. - /// This field is supported if and only if the control plane provider template referenced is Machine based. + /// Metadata is the metadata applied to the machines of the ControlPlane. + /// At runtime this metadata is merged with the corresponding metadata from the topology. + /// + /// + /// This field is supported if and only if the control plane provider template + /// referenced is Machine based. #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, - /// Ref is a required reference to a custom resource offered by a provider. + /// Ref is a required reference to a custom resource + /// offered by a provider. #[serde(rename = "ref")] pub r#ref: ClusterClassControlPlaneRef, } -/// MachineTemplate defines the metadata and infrastructure information for control plane machines. -/// This field is supported if and only if the control plane provider template referenced above is Machine based and supports setting replicas. +/// MachineTemplate defines the metadata and infrastructure information +/// for control plane machines. +/// +/// +/// This field is supported if and only if the control plane provider template +/// referenced above is Machine based and supports setting replicas. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassControlPlaneMachineInfrastructure { - /// Ref is a required reference to a custom resource offered by a provider. + /// Ref is a required reference to a custom resource + /// offered by a provider. #[serde(rename = "ref")] pub r#ref: ClusterClassControlPlaneMachineInfrastructureRef, } -/// Ref is a required reference to a custom resource offered by a provider. +/// Ref is a required reference to a custom resource +/// offered by a provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassControlPlaneMachineInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// Metadata is the metadata applied to the machines of the ControlPlane. At runtime this metadata is merged with the corresponding metadata from the topology. -/// This field is supported if and only if the control plane provider template referenced is Machine based. +/// Metadata is the metadata applied to the machines of the ControlPlane. +/// At runtime this metadata is merged with the corresponding metadata from the topology. +/// +/// +/// This field is supported if and only if the control plane provider template +/// referenced is Machine based. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassControlPlaneMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } -/// Ref is a required reference to a custom resource offered by a provider. +/// Ref is a required reference to a custom resource +/// offered by a provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassControlPlaneRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// Infrastructure is a reference to a provider-specific template that holds the details for provisioning infrastructure specific cluster for the underlying provider. The underlying provider is responsible for the implementation of the template to an infrastructure cluster. +/// Infrastructure is a reference to a provider-specific template that holds +/// the details for provisioning infrastructure specific cluster +/// for the underlying provider. +/// The underlying provider is responsible for the implementation +/// of the template to an infrastructure cluster. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassInfrastructure { - /// Ref is a required reference to a custom resource offered by a provider. + /// Ref is a required reference to a custom resource + /// offered by a provider. #[serde(rename = "ref")] pub r#ref: ClusterClassInfrastructureRef, } -/// Ref is a required reference to a custom resource offered by a provider. +/// Ref is a required reference to a custom resource +/// offered by a provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// Workers describes the worker nodes for the cluster. It is a collection of node types which can be used to create the worker nodes of the cluster. +/// Workers describes the worker nodes for the cluster. +/// It is a collection of node types which can be used to create +/// the worker nodes of the cluster. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkers { - /// MachineDeployments is a list of machine deployment classes that can be used to create a set of worker nodes. + /// MachineDeployments is a list of machine deployment classes that can be used to create + /// a set of worker nodes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "machineDeployments")] pub machine_deployments: Option>, } -/// MachineDeploymentClass serves as a template to define a set of worker nodes of the cluster provisioned using the `ClusterClass`. +/// MachineDeploymentClass serves as a template to define a set of worker nodes of the cluster +/// provisioned using the `ClusterClass`. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeployments { - /// Class denotes a type of worker node present in the cluster, this name MUST be unique within a ClusterClass and can be referenced in the Cluster to create a managed MachineDeployment. + /// Class denotes a type of worker node present in the cluster, + /// this name MUST be unique within a ClusterClass and can be referenced + /// in the Cluster to create a managed MachineDeployment. pub class: String, - /// Template is a local struct containing a collection of templates for creation of MachineDeployment objects representing a set of worker nodes. + /// Template is a local struct containing a collection of templates for creation of + /// MachineDeployment objects representing a set of worker nodes. pub template: ClusterClassWorkersMachineDeploymentsTemplate, } -/// Template is a local struct containing a collection of templates for creation of MachineDeployment objects representing a set of worker nodes. +/// Template is a local struct containing a collection of templates for creation of +/// MachineDeployment objects representing a set of worker nodes. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsTemplate { - /// Bootstrap contains the bootstrap template reference to be used for the creation of worker Machines. + /// Bootstrap contains the bootstrap template reference to be used + /// for the creation of worker Machines. pub bootstrap: ClusterClassWorkersMachineDeploymentsTemplateBootstrap, - /// Infrastructure contains the infrastructure template reference to be used for the creation of worker Machines. + /// Infrastructure contains the infrastructure template reference to be used + /// for the creation of worker Machines. pub infrastructure: ClusterClassWorkersMachineDeploymentsTemplateInfrastructure, - /// Metadata is the metadata applied to the machines of the MachineDeployment. At runtime this metadata is merged with the corresponding metadata from the topology. + /// Metadata is the metadata applied to the machines of the MachineDeployment. + /// At runtime this metadata is merged with the corresponding metadata from the topology. #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, } -/// Bootstrap contains the bootstrap template reference to be used for the creation of worker Machines. +/// Bootstrap contains the bootstrap template reference to be used +/// for the creation of worker Machines. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsTemplateBootstrap { - /// Ref is a required reference to a custom resource offered by a provider. + /// Ref is a required reference to a custom resource + /// offered by a provider. #[serde(rename = "ref")] pub r#ref: ClusterClassWorkersMachineDeploymentsTemplateBootstrapRef, } -/// Ref is a required reference to a custom resource offered by a provider. +/// Ref is a required reference to a custom resource +/// offered by a provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsTemplateBootstrapRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// Infrastructure contains the infrastructure template reference to be used for the creation of worker Machines. +/// Infrastructure contains the infrastructure template reference to be used +/// for the creation of worker Machines. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsTemplateInfrastructure { - /// Ref is a required reference to a custom resource offered by a provider. + /// Ref is a required reference to a custom resource + /// offered by a provider. #[serde(rename = "ref")] pub r#ref: ClusterClassWorkersMachineDeploymentsTemplateInfrastructureRef, } -/// Ref is a required reference to a custom resource offered by a provider. +/// Ref is a required reference to a custom resource +/// offered by a provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsTemplateInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// Metadata is the metadata applied to the machines of the MachineDeployment. At runtime this metadata is merged with the corresponding metadata from the topology. +/// Metadata is the metadata applied to the machines of the MachineDeployment. +/// At runtime this metadata is merged with the corresponding metadata from the topology. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsTemplateMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } diff --git a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/clusters.rs b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/clusters.rs index 1c44a8c36..c269cf5bb 100644 --- a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/clusters.rs +++ b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/clusters.rs @@ -19,16 +19,21 @@ pub struct ClusterSpec { /// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane. #[serde(default, skip_serializing_if = "Option::is_none", rename = "controlPlaneEndpoint")] pub control_plane_endpoint: Option, - /// ControlPlaneRef is an optional reference to a provider-specific resource that holds the details for provisioning the Control Plane for a Cluster. + /// ControlPlaneRef is an optional reference to a provider-specific resource that holds + /// the details for provisioning the Control Plane for a Cluster. #[serde(default, skip_serializing_if = "Option::is_none", rename = "controlPlaneRef")] pub control_plane_ref: Option, - /// InfrastructureRef is a reference to a provider-specific resource that holds the details for provisioning infrastructure for a cluster in said provider. + /// InfrastructureRef is a reference to a provider-specific resource that holds the details + /// for provisioning infrastructure for a cluster in said provider. #[serde(default, skip_serializing_if = "Option::is_none", rename = "infrastructureRef")] pub infrastructure_ref: Option, /// Paused can be used to prevent controllers from processing the Cluster and all its associated objects. #[serde(default, skip_serializing_if = "Option::is_none")] pub paused: Option, - /// This encapsulates the topology for the cluster. NOTE: It is required to enable the ClusterTopology feature gate flag to activate managed topologies support; this feature is highly experimental, and parts of it might still be not implemented. + /// This encapsulates the topology for the cluster. + /// NOTE: It is required to enable the ClusterTopology + /// feature gate flag to activate managed topologies support; + /// this feature is highly experimental, and parts of it might still be not implemented. #[serde(default, skip_serializing_if = "Option::is_none")] pub topology: Option, } @@ -36,7 +41,8 @@ pub struct ClusterSpec { /// Cluster network configuration. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClusterNetwork { - /// APIServerPort specifies the port the API Server should bind to. Defaults to 6443. + /// APIServerPort specifies the port the API Server should bind to. + /// Defaults to 6443. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiServerPort")] pub api_server_port: Option, /// The network ranges from which Pod networks are allocated. @@ -73,59 +79,88 @@ pub struct ClusterControlPlaneEndpoint { pub port: i32, } -/// ControlPlaneRef is an optional reference to a provider-specific resource that holds the details for provisioning the Control Plane for a Cluster. +/// ControlPlaneRef is an optional reference to a provider-specific resource that holds +/// the details for provisioning the Control Plane for a Cluster. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterControlPlaneRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// InfrastructureRef is a reference to a provider-specific resource that holds the details for provisioning infrastructure for a cluster in said provider. +/// InfrastructureRef is a reference to a provider-specific resource that holds the details +/// for provisioning infrastructure for a cluster in said provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// This encapsulates the topology for the cluster. NOTE: It is required to enable the ClusterTopology feature gate flag to activate managed topologies support; this feature is highly experimental, and parts of it might still be not implemented. +/// This encapsulates the topology for the cluster. +/// NOTE: It is required to enable the ClusterTopology +/// feature gate flag to activate managed topologies support; +/// this feature is highly experimental, and parts of it might still be not implemented. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopology { /// The name of the ClusterClass object to create the topology. @@ -133,12 +168,14 @@ pub struct ClusterTopology { /// ControlPlane describes the cluster control plane. #[serde(default, skip_serializing_if = "Option::is_none", rename = "controlPlane")] pub control_plane: Option, - /// RolloutAfter performs a rollout of the entire cluster one component at a time, control plane first and then machine deployments. + /// RolloutAfter performs a rollout of the entire cluster one component at a time, + /// control plane first and then machine deployments. #[serde(default, skip_serializing_if = "Option::is_none", rename = "rolloutAfter")] pub rollout_after: Option, /// The Kubernetes version of the cluster. pub version: String, - /// Workers encapsulates the different constructs that form the worker nodes for the cluster. + /// Workers encapsulates the different constructs that form the worker nodes + /// for the cluster. #[serde(default, skip_serializing_if = "Option::is_none")] pub workers: Option, } @@ -146,28 +183,46 @@ pub struct ClusterTopology { /// ControlPlane describes the cluster control plane. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyControlPlane { - /// Metadata is the metadata applied to the machines of the ControlPlane. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. - /// This field is supported if and only if the control plane provider template referenced in the ClusterClass is Machine based. + /// Metadata is the metadata applied to the machines of the ControlPlane. + /// At runtime this metadata is merged with the corresponding metadata from the ClusterClass. + /// + /// + /// This field is supported if and only if the control plane provider template + /// referenced in the ClusterClass is Machine based. #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, - /// Replicas is the number of control plane nodes. If the value is nil, the ControlPlane object is created without the number of Replicas and it's assumed that the control plane controller does not implement support for this field. When specified against a control plane provider that lacks support for this field, this value will be ignored. + /// Replicas is the number of control plane nodes. + /// If the value is nil, the ControlPlane object is created without the number of Replicas + /// and it's assumed that the control plane controller does not implement support for this field. + /// When specified against a control plane provider that lacks support for this field, this value will be ignored. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, } -/// Metadata is the metadata applied to the machines of the ControlPlane. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. -/// This field is supported if and only if the control plane provider template referenced in the ClusterClass is Machine based. +/// Metadata is the metadata applied to the machines of the ControlPlane. +/// At runtime this metadata is merged with the corresponding metadata from the ClusterClass. +/// +/// +/// This field is supported if and only if the control plane provider template +/// referenced in the ClusterClass is Machine based. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyControlPlaneMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } -/// Workers encapsulates the different constructs that form the worker nodes for the cluster. +/// Workers encapsulates the different constructs that form the worker nodes +/// for the cluster. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkers { /// MachineDeployments is a list of machine deployments in the cluster. @@ -175,28 +230,45 @@ pub struct ClusterTopologyWorkers { pub machine_deployments: Option>, } -/// MachineDeploymentTopology specifies the different parameters for a set of worker nodes in the topology. This set of nodes is managed by a MachineDeployment object whose lifecycle is managed by the Cluster controller. +/// MachineDeploymentTopology specifies the different parameters for a set of worker nodes in the topology. +/// This set of nodes is managed by a MachineDeployment object whose lifecycle is managed by the Cluster controller. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkersMachineDeployments { - /// Class is the name of the MachineDeploymentClass used to create the set of worker nodes. This should match one of the deployment classes defined in the ClusterClass object mentioned in the `Cluster.Spec.Class` field. + /// Class is the name of the MachineDeploymentClass used to create the set of worker nodes. + /// This should match one of the deployment classes defined in the ClusterClass object + /// mentioned in the `Cluster.Spec.Class` field. pub class: String, - /// Metadata is the metadata applied to the machines of the MachineDeployment. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. + /// Metadata is the metadata applied to the machines of the MachineDeployment. + /// At runtime this metadata is merged with the corresponding metadata from the ClusterClass. #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, - /// Name is the unique identifier for this MachineDeploymentTopology. The value is used with other unique identifiers to create a MachineDeployment's Name (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length, the values are hashed together. + /// Name is the unique identifier for this MachineDeploymentTopology. + /// The value is used with other unique identifiers to create a MachineDeployment's Name + /// (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length, + /// the values are hashed together. pub name: String, - /// Replicas is the number of worker nodes belonging to this set. If the value is nil, the MachineDeployment is created without the number of Replicas (defaulting to zero) and it's assumed that an external entity (like cluster autoscaler) is responsible for the management of this value. + /// Replicas is the number of worker nodes belonging to this set. + /// If the value is nil, the MachineDeployment is created without the number of Replicas (defaulting to zero) + /// and it's assumed that an external entity (like cluster autoscaler) is responsible for the management + /// of this value. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, } -/// Metadata is the metadata applied to the machines of the MachineDeployment. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. +/// Metadata is the metadata applied to the machines of the MachineDeployment. +/// At runtime this metadata is merged with the corresponding metadata from the ClusterClass. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkersMachineDeploymentsMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } @@ -213,10 +285,13 @@ pub struct ClusterStatus { /// FailureDomains is a slice of failure domain objects synced from the infrastructure provider. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomains")] pub failure_domains: Option>, - /// FailureMessage indicates that there is a fatal problem reconciling the state, and will be set to a descriptive error message. + /// FailureMessage indicates that there is a fatal problem reconciling the + /// state, and will be set to a descriptive error message. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureMessage")] pub failure_message: Option, - /// FailureReason indicates that there is a fatal problem reconciling the state, and will be set to a token value suitable for programmatic interpretation. + /// FailureReason indicates that there is a fatal problem reconciling the + /// state, and will be set to a token value suitable for + /// programmatic interpretation. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureReason")] pub failure_reason: Option, /// InfrastructureReady is the state of the infrastructure provider. @@ -225,7 +300,8 @@ pub struct ClusterStatus { /// ObservedGeneration is the latest generation observed by the controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// Phase represents the current phase of cluster actuation. E.g. Pending, Running, Terminating, Failed etc. + /// Phase represents the current phase of cluster actuation. + /// E.g. Pending, Running, Terminating, Failed etc. #[serde(default, skip_serializing_if = "Option::is_none")] pub phase: Option, } @@ -233,21 +309,30 @@ pub struct ClusterStatus { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastTransitionTime")] pub last_transition_time: Option, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } diff --git a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinedeployments.rs b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinedeployments.rs index 4e8a44bfc..bee902e08 100644 --- a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinedeployments.rs +++ b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinedeployments.rs @@ -17,79 +17,131 @@ pub struct MachineDeploymentSpec { /// ClusterName is the name of the Cluster this object belongs to. #[serde(rename = "clusterName")] pub cluster_name: String, - /// Minimum number of seconds for which a newly created machine should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) + /// Minimum number of seconds for which a newly created machine should + /// be ready. + /// Defaults to 0 (machine will be considered available as soon as it + /// is ready) #[serde(default, skip_serializing_if = "Option::is_none", rename = "minReadySeconds")] pub min_ready_seconds: Option, /// Indicates that the deployment is paused. #[serde(default, skip_serializing_if = "Option::is_none")] pub paused: Option, - /// The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s. + /// The maximum time in seconds for a deployment to make progress before it + /// is considered to be failed. The deployment controller will continue to + /// process failed deployments and a condition with a ProgressDeadlineExceeded + /// reason will be surfaced in the deployment status. Note that progress will + /// not be estimated during the time a deployment is paused. Defaults to 600s. #[serde(default, skip_serializing_if = "Option::is_none", rename = "progressDeadlineSeconds")] pub progress_deadline_seconds: Option, - /// Number of desired machines. Defaults to 1. This is a pointer to distinguish between explicit zero and not specified. + /// Number of desired machines. Defaults to 1. + /// This is a pointer to distinguish between explicit zero and not specified. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// The number of old MachineSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. + /// The number of old MachineSets to retain to allow rollback. + /// This is a pointer to distinguish between explicit zero and not specified. + /// Defaults to 1. #[serde(default, skip_serializing_if = "Option::is_none", rename = "revisionHistoryLimit")] pub revision_history_limit: Option, - /// Label selector for machines. Existing MachineSets whose machines are selected by this will be the ones affected by this deployment. It must match the machine template's labels. + /// Label selector for machines. Existing MachineSets whose machines are + /// selected by this will be the ones affected by this deployment. + /// It must match the machine template's labels. pub selector: MachineDeploymentSelector, - /// The deployment strategy to use to replace existing machines with new ones. + /// The deployment strategy to use to replace existing machines with + /// new ones. #[serde(default, skip_serializing_if = "Option::is_none")] pub strategy: Option, /// Template describes the machines that will be created. pub template: MachineDeploymentTemplate, } -/// Label selector for machines. Existing MachineSets whose machines are selected by this will be the ones affected by this deployment. It must match the machine template's labels. +/// Label selector for machines. Existing MachineSets whose machines are +/// selected by this will be the ones affected by this deployment. +/// It must match the machine template's labels. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] pub match_expressions: Option>, - /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + /// map is equivalent to an element of matchExpressions, whose key field is "key", the + /// operator is "In", and the values array contains only "value". The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] pub match_labels: Option>, } -/// A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +/// A label selector requirement is a selector that contains values, a key, and an operator that +/// relates the key and values. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentSelectorMatchExpressions { /// key is the label key that the selector applies to. pub key: String, - /// operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + /// operator represents a key's relationship to a set of values. + /// Valid operators are In, NotIn, Exists and DoesNotExist. pub operator: String, - /// values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + /// values is an array of string values. If the operator is In or NotIn, + /// the values array must be non-empty. If the operator is Exists or DoesNotExist, + /// the values array must be empty. This array is replaced during a strategic + /// merge patch. #[serde(default, skip_serializing_if = "Option::is_none")] pub values: Option>, } -/// The deployment strategy to use to replace existing machines with new ones. +/// The deployment strategy to use to replace existing machines with +/// new ones. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentStrategy { - /// Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. + /// Rolling update config params. Present only if + /// MachineDeploymentStrategyType = RollingUpdate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "rollingUpdate")] pub rolling_update: Option, - /// Type of deployment. Default is RollingUpdate. + /// Type of deployment. + /// Default is RollingUpdate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. +/// Rolling update config params. Present only if +/// MachineDeploymentStrategyType = RollingUpdate. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentStrategyRollingUpdate { - /// DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. Valid values are "Random, "Newest", "Oldest" When no value is supplied, the default DeletePolicy of MachineSet is used + /// DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. + /// Valid values are "Random, "Newest", "Oldest" + /// When no value is supplied, the default DeletePolicy of MachineSet is used #[serde(default, skip_serializing_if = "Option::is_none", rename = "deletePolicy")] pub delete_policy: Option, - /// The maximum number of machines that can be scheduled above the desired number of machines. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 1. Example: when this is set to 30%, the new MachineSet can be scaled up immediately when the rolling update starts, such that the total number of old and new machines do not exceed 130% of desired machines. Once old machines have been killed, new MachineSet can be scaled up further, ensuring that total number of machines running at any time during the update is at most 130% of desired machines. + /// The maximum number of machines that can be scheduled above the + /// desired number of machines. + /// Value can be an absolute number (ex: 5) or a percentage of + /// desired machines (ex: 10%). + /// This can not be 0 if MaxUnavailable is 0. + /// Absolute number is calculated from percentage by rounding up. + /// Defaults to 1. + /// Example: when this is set to 30%, the new MachineSet can be scaled + /// up immediately when the rolling update starts, such that the total + /// number of old and new machines do not exceed 130% of desired + /// machines. Once old machines have been killed, new MachineSet can + /// be scaled up further, ensuring that total number of machines running + /// at any time during the update is at most 130% of desired machines. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxSurge")] pub max_surge: Option, - /// The maximum number of machines that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 0. Example: when this is set to 30%, the old MachineSet can be scaled down to 70% of desired machines immediately when the rolling update starts. Once new machines are ready, old MachineSet can be scaled down further, followed by scaling up the new MachineSet, ensuring that the total number of machines available at all times during the update is at least 70% of desired machines. + /// The maximum number of machines that can be unavailable during the update. + /// Value can be an absolute number (ex: 5) or a percentage of desired + /// machines (ex: 10%). + /// Absolute number is calculated from percentage by rounding down. + /// This can not be 0 if MaxSurge is 0. + /// Defaults to 0. + /// Example: when this is set to 30%, the old MachineSet can be scaled + /// down to 70% of desired machines immediately when the rolling update + /// starts. Once new machines are ready, old MachineSet can be scaled + /// down further, followed by scaling up the new MachineSet, ensuring + /// that the total number of machines available at all times + /// during the update is at least 70% of desired machines. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")] pub max_unavailable: Option, } -/// Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. +/// Rolling update config params. Present only if +/// MachineDeploymentStrategyType = RollingUpdate. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MachineDeploymentStrategyRollingUpdateDeletePolicy { Random, @@ -97,7 +149,8 @@ pub enum MachineDeploymentStrategyRollingUpdateDeletePolicy { Oldest, } -/// The deployment strategy to use to replace existing machines with new ones. +/// The deployment strategy to use to replace existing machines with +/// new ones. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MachineDeploymentStrategyType { RollingUpdate, @@ -107,109 +160,167 @@ pub enum MachineDeploymentStrategyType { /// Template describes the machines that will be created. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentTemplate { - /// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// Standard object's metadata. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, - /// Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// Specification of the desired behavior of the machine. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status #[serde(default, skip_serializing_if = "Option::is_none")] pub spec: Option, } -/// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata +/// Standard object's metadata. +/// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentTemplateMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } -/// Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status +/// Specification of the desired behavior of the machine. +/// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentTemplateSpec { - /// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + /// Bootstrap is a reference to a local struct which encapsulates + /// fields to configure the Machine’s bootstrapping mechanism. pub bootstrap: MachineDeploymentTemplateSpecBootstrap, /// ClusterName is the name of the Cluster this object belongs to. #[serde(rename = "clusterName")] pub cluster_name: String, - /// FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + /// FailureDomain is the failure domain the machine will be created in. + /// Must match a key in the FailureDomains map stored on the cluster object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomain")] pub failure_domain: Option, - /// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + /// InfrastructureRef is a required reference to a custom resource + /// offered by an infrastructure provider. #[serde(rename = "infrastructureRef")] pub infrastructure_ref: MachineDeploymentTemplateSpecInfrastructureRef, - /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + /// The default value is 0, meaning that the node can be drained without any time limitations. + /// NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDrainTimeout")] pub node_drain_timeout: Option, - /// ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + /// ProviderID is the identification ID of the machine provided by the provider. + /// This field must match the provider ID as seen on the node object corresponding to this machine. + /// This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + /// with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + /// machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + /// generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + /// able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + /// and then a comparison is done to find out unregistered machines and are marked for delete. + /// This field will be set by the actuators and consumed by higher level entities like autoscaler that will + /// be interfacing with cluster-api as generic provider. #[serde(default, skip_serializing_if = "Option::is_none", rename = "providerID")] pub provider_id: Option, - /// Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + /// Version defines the desired Kubernetes version. + /// This field is meant to be optionally used by bootstrap providers. #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, } -/// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. +/// Bootstrap is a reference to a local struct which encapsulates +/// fields to configure the Machine’s bootstrapping mechanism. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentTemplateSpecBootstrap { - /// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + /// ConfigRef is a reference to a bootstrap provider-specific resource + /// that holds configuration details. The reference is optional to + /// allow users/operators to specify Bootstrap.DataSecretName without + /// the need of a controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "configRef")] pub config_ref: Option, - /// DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + /// DataSecretName is the name of the secret that stores the bootstrap data script. + /// If nil, the Machine should remain in the Pending state. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSecretName")] pub data_secret_name: Option, } -/// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. +/// ConfigRef is a reference to a bootstrap provider-specific resource +/// that holds configuration details. The reference is optional to +/// allow users/operators to specify Bootstrap.DataSecretName without +/// the need of a controller. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentTemplateSpecBootstrapConfigRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. +/// InfrastructureRef is a required reference to a custom resource +/// offered by an infrastructure provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentTemplateSpecInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } @@ -217,7 +328,8 @@ pub struct MachineDeploymentTemplateSpecInfrastructureRef { /// MachineDeploymentStatus defines the observed state of MachineDeployment. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentStatus { - /// Total number of available machines (ready for at least minReadySeconds) targeted by this deployment. + /// Total number of available machines (ready for at least minReadySeconds) + /// targeted by this deployment. #[serde(default, skip_serializing_if = "Option::is_none", rename = "availableReplicas")] pub available_replicas: Option, /// Conditions defines current service state of the MachineDeployment. @@ -232,16 +344,24 @@ pub struct MachineDeploymentStatus { /// Total number of ready machines targeted by this deployment. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readyReplicas")] pub ready_replicas: Option, - /// Total number of non-terminated machines targeted by this deployment (their labels match the selector). + /// Total number of non-terminated machines targeted by this deployment + /// (their labels match the selector). #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// Selector is the same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors + /// Selector is the same as the label selector but in the string format to avoid introspection + /// by clients. The string will be in the same format as the query-param syntax. + /// More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, - /// Total number of unavailable machines targeted by this deployment. This is the total number of machines that are still required for the deployment to have 100% available capacity. They may either be machines that are running but not yet available or machines that still have not been created. + /// Total number of unavailable machines targeted by this deployment. + /// This is the total number of machines that are still required for + /// the deployment to have 100% available capacity. They may either + /// be machines that are running but not yet available or machines + /// that still have not been created. #[serde(default, skip_serializing_if = "Option::is_none", rename = "unavailableReplicas")] pub unavailable_replicas: Option, - /// Total number of non-terminated machines targeted by this deployment that have the desired template spec. + /// Total number of non-terminated machines targeted by this deployment + /// that have the desired template spec. #[serde(default, skip_serializing_if = "Option::is_none", rename = "updatedReplicas")] pub updated_replicas: Option, } @@ -249,21 +369,30 @@ pub struct MachineDeploymentStatus { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastTransitionTime")] pub last_transition_time: Option, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } diff --git a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinehealthchecks.rs b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinehealthchecks.rs index a45550a3e..eec329c21 100644 --- a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinehealthchecks.rs +++ b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinehealthchecks.rs @@ -17,49 +17,81 @@ pub struct MachineHealthCheckSpec { /// ClusterName is the name of the Cluster this object belongs to. #[serde(rename = "clusterName")] pub cluster_name: String, - /// Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by "selector" are not healthy. + /// Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by + /// "selector" are not healthy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnhealthy")] pub max_unhealthy: Option, - /// Machines older than this duration without a node will be considered to have failed and will be remediated. If not set, this value is defaulted to 10 minutes. If you wish to disable this feature, set the value explicitly to 0. + /// Machines older than this duration without a node will be considered to have + /// failed and will be remediated. + /// If not set, this value is defaulted to 10 minutes. + /// If you wish to disable this feature, set the value explicitly to 0. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeStartupTimeout")] pub node_startup_timeout: Option, - /// RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. - /// This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. + /// RemediationTemplate is a reference to a remediation template + /// provided by an infrastructure provider. + /// + /// + /// This field is completely optional, when filled, the MachineHealthCheck controller + /// creates a new object from the template referenced and hands off remediation of the machine to + /// a controller that lives outside of Cluster API. #[serde(default, skip_serializing_if = "Option::is_none", rename = "remediationTemplate")] pub remediation_template: Option, /// Label selector to match machines whose health will be exercised pub selector: MachineHealthCheckSelector, - /// UnhealthyConditions contains a list of the conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. + /// UnhealthyConditions contains a list of the conditions that determine + /// whether a node is considered unhealthy. The conditions are combined in a + /// logical OR, i.e. if any of the conditions is met, the node is unhealthy. #[serde(rename = "unhealthyConditions")] pub unhealthy_conditions: Vec, - /// Any further remediation is only allowed if the number of machines selected by "selector" as not healthy is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. Eg. "[3-5]" - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy machines (and) (b) there are at most 5 unhealthy machines + /// Any further remediation is only allowed if the number of machines selected by "selector" as not healthy + /// is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. + /// Eg. "[3-5]" - This means that remediation will be allowed only when: + /// (a) there are at least 3 unhealthy machines (and) + /// (b) there are at most 5 unhealthy machines #[serde(default, skip_serializing_if = "Option::is_none", rename = "unhealthyRange")] pub unhealthy_range: Option, } -/// RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. -/// This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. +/// RemediationTemplate is a reference to a remediation template +/// provided by an infrastructure provider. +/// +/// +/// This field is completely optional, when filled, the MachineHealthCheck controller +/// creates a new object from the template referenced and hands off remediation of the machine to +/// a controller that lives outside of Cluster API. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineHealthCheckRemediationTemplate { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } @@ -70,24 +102,33 @@ pub struct MachineHealthCheckSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] pub match_expressions: Option>, - /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + /// map is equivalent to an element of matchExpressions, whose key field is "key", the + /// operator is "In", and the values array contains only "value". The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] pub match_labels: Option>, } -/// A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +/// A label selector requirement is a selector that contains values, a key, and an operator that +/// relates the key and values. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineHealthCheckSelectorMatchExpressions { /// key is the label key that the selector applies to. pub key: String, - /// operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + /// operator represents a key's relationship to a set of values. + /// Valid operators are In, NotIn, Exists and DoesNotExist. pub operator: String, - /// values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + /// values is an array of string values. If the operator is In or NotIn, + /// the values array must be non-empty. If the operator is Exists or DoesNotExist, + /// the values array must be empty. This array is replaced during a strategic + /// merge patch. #[serde(default, skip_serializing_if = "Option::is_none")] pub values: Option>, } -/// UnhealthyCondition represents a Node condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a node is considered unhealthy. +/// UnhealthyCondition represents a Node condition type and value with a timeout +/// specified as a duration. When the named condition has been in the given +/// status for at least the timeout value, a node is considered unhealthy. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineHealthCheckUnhealthyConditions { pub status: String, @@ -111,7 +152,8 @@ pub struct MachineHealthCheckStatus { /// ObservedGeneration is the latest generation observed by the controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// RemediationsAllowed is the number of further remediations allowed by this machine health check before maxUnhealthy short circuiting will be applied + /// RemediationsAllowed is the number of further remediations allowed by this machine health check before + /// maxUnhealthy short circuiting will be applied #[serde(default, skip_serializing_if = "Option::is_none", rename = "remediationsAllowed")] pub remediations_allowed: Option, /// Targets shows the current list of machines the machine health check is watching @@ -122,21 +164,30 @@ pub struct MachineHealthCheckStatus { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineHealthCheckStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastTransitionTime")] pub last_transition_time: Option, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } diff --git a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinepools.rs b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinepools.rs index 1c8b153e1..da07016d0 100644 --- a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinepools.rs +++ b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinepools.rs @@ -19,13 +19,18 @@ pub struct MachinePoolSpec { /// FailureDomains is the list of failure domains this MachinePool should be attached to. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomains")] pub failure_domains: Option>, - /// Minimum number of seconds for which a newly created machine instances should be ready. Defaults to 0 (machine instance will be considered available as soon as it is ready) + /// Minimum number of seconds for which a newly created machine instances should + /// be ready. + /// Defaults to 0 (machine instance will be considered available as soon as it + /// is ready) #[serde(default, skip_serializing_if = "Option::is_none", rename = "minReadySeconds")] pub min_ready_seconds: Option, - /// ProviderIDList are the identification IDs of machine instances provided by the provider. This field must match the provider IDs as seen on the node objects corresponding to a machine pool's machine instances. + /// ProviderIDList are the identification IDs of machine instances provided by the provider. + /// This field must match the provider IDs as seen on the node objects corresponding to a machine pool's machine instances. #[serde(default, skip_serializing_if = "Option::is_none", rename = "providerIDList")] pub provider_id_list: Option>, - /// Number of desired machines. Defaults to 1. This is a pointer to distinguish between explicit zero and not specified. + /// Number of desired machines. Defaults to 1. + /// This is a pointer to distinguish between explicit zero and not specified. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, /// Template describes the machines that will be created. @@ -35,109 +40,167 @@ pub struct MachinePoolSpec { /// Template describes the machines that will be created. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolTemplate { - /// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// Standard object's metadata. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, - /// Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// Specification of the desired behavior of the machine. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status #[serde(default, skip_serializing_if = "Option::is_none")] pub spec: Option, } -/// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata +/// Standard object's metadata. +/// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolTemplateMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } -/// Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status +/// Specification of the desired behavior of the machine. +/// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolTemplateSpec { - /// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + /// Bootstrap is a reference to a local struct which encapsulates + /// fields to configure the Machine’s bootstrapping mechanism. pub bootstrap: MachinePoolTemplateSpecBootstrap, /// ClusterName is the name of the Cluster this object belongs to. #[serde(rename = "clusterName")] pub cluster_name: String, - /// FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + /// FailureDomain is the failure domain the machine will be created in. + /// Must match a key in the FailureDomains map stored on the cluster object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomain")] pub failure_domain: Option, - /// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + /// InfrastructureRef is a required reference to a custom resource + /// offered by an infrastructure provider. #[serde(rename = "infrastructureRef")] pub infrastructure_ref: MachinePoolTemplateSpecInfrastructureRef, - /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + /// The default value is 0, meaning that the node can be drained without any time limitations. + /// NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDrainTimeout")] pub node_drain_timeout: Option, - /// ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + /// ProviderID is the identification ID of the machine provided by the provider. + /// This field must match the provider ID as seen on the node object corresponding to this machine. + /// This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + /// with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + /// machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + /// generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + /// able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + /// and then a comparison is done to find out unregistered machines and are marked for delete. + /// This field will be set by the actuators and consumed by higher level entities like autoscaler that will + /// be interfacing with cluster-api as generic provider. #[serde(default, skip_serializing_if = "Option::is_none", rename = "providerID")] pub provider_id: Option, - /// Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + /// Version defines the desired Kubernetes version. + /// This field is meant to be optionally used by bootstrap providers. #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, } -/// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. +/// Bootstrap is a reference to a local struct which encapsulates +/// fields to configure the Machine’s bootstrapping mechanism. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolTemplateSpecBootstrap { - /// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + /// ConfigRef is a reference to a bootstrap provider-specific resource + /// that holds configuration details. The reference is optional to + /// allow users/operators to specify Bootstrap.DataSecretName without + /// the need of a controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "configRef")] pub config_ref: Option, - /// DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + /// DataSecretName is the name of the secret that stores the bootstrap data script. + /// If nil, the Machine should remain in the Pending state. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSecretName")] pub data_secret_name: Option, } -/// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. +/// ConfigRef is a reference to a bootstrap provider-specific resource +/// that holds configuration details. The reference is optional to +/// allow users/operators to specify Bootstrap.DataSecretName without +/// the need of a controller. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolTemplateSpecBootstrapConfigRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. +/// InfrastructureRef is a required reference to a custom resource +/// offered by an infrastructure provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolTemplateSpecInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } @@ -154,10 +217,12 @@ pub struct MachinePoolStatus { /// Conditions define the current service state of the MachinePool. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, - /// FailureMessage indicates that there is a problem reconciling the state, and will be set to a descriptive error message. + /// FailureMessage indicates that there is a problem reconciling the state, + /// and will be set to a descriptive error message. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureMessage")] pub failure_message: Option, - /// FailureReason indicates that there is a problem reconciling the state, and will be set to a token value suitable for programmatic interpretation. + /// FailureReason indicates that there is a problem reconciling the state, and + /// will be set to a token value suitable for programmatic interpretation. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureReason")] pub failure_reason: Option, /// InfrastructureReady is the state of the infrastructure provider. @@ -169,7 +234,8 @@ pub struct MachinePoolStatus { /// ObservedGeneration is the latest generation observed by the controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// Phase represents the current phase of cluster actuation. E.g. Pending, Running, Terminating, Failed etc. + /// Phase represents the current phase of cluster actuation. + /// E.g. Pending, Running, Terminating, Failed etc. #[serde(default, skip_serializing_if = "Option::is_none")] pub phase: Option, /// The number of ready replicas for this MachinePool. A machine is considered ready when the node has been created and is "Ready". @@ -178,7 +244,11 @@ pub struct MachinePoolStatus { /// Replicas is the most recently observed number of replicas. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// Total number of unavailable machine instances targeted by this machine pool. This is the total number of machine instances that are still required for the machine pool to have 100% available capacity. They may either be machine instances that are running but not yet available or machine instances that still have not been created. + /// Total number of unavailable machine instances targeted by this machine pool. + /// This is the total number of machine instances that are still required for + /// the machine pool to have 100% available capacity. They may either + /// be machine instances that are running but not yet available or machine instances + /// that still have not been created. #[serde(default, skip_serializing_if = "Option::is_none", rename = "unavailableReplicas")] pub unavailable_replicas: Option, } @@ -186,48 +256,84 @@ pub struct MachinePoolStatus { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastTransitionTime")] pub last_transition_time: Option, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } -/// ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". Those cannot be well described when embedded. 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. -/// Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . +/// ObjectReference contains enough information to let you inspect or modify the referred object. +/// --- +/// New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. +/// 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. +/// 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular +/// restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". +/// Those cannot be well described when embedded. +/// 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. +/// 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity +/// during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple +/// and the version of the actual struct is irrelevant. +/// 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type +/// will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. +/// +/// +/// Instead of using this type, create a locally provided and used type that is well-focused on your reference. +/// For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolStatusNodeRefs { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } diff --git a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machines.rs b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machines.rs index 0c610dd49..7d6ac4e8d 100644 --- a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machines.rs +++ b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machines.rs @@ -12,87 +12,135 @@ use serde::{Serialize, Deserialize}; #[kube(status = "MachineStatus")] #[kube(schema = "disabled")] pub struct MachineSpec { - /// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + /// Bootstrap is a reference to a local struct which encapsulates + /// fields to configure the Machine’s bootstrapping mechanism. pub bootstrap: MachineBootstrap, /// ClusterName is the name of the Cluster this object belongs to. #[serde(rename = "clusterName")] pub cluster_name: String, - /// FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + /// FailureDomain is the failure domain the machine will be created in. + /// Must match a key in the FailureDomains map stored on the cluster object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomain")] pub failure_domain: Option, - /// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + /// InfrastructureRef is a required reference to a custom resource + /// offered by an infrastructure provider. #[serde(rename = "infrastructureRef")] pub infrastructure_ref: MachineInfrastructureRef, - /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + /// The default value is 0, meaning that the node can be drained without any time limitations. + /// NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDrainTimeout")] pub node_drain_timeout: Option, - /// ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + /// ProviderID is the identification ID of the machine provided by the provider. + /// This field must match the provider ID as seen on the node object corresponding to this machine. + /// This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + /// with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + /// machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + /// generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + /// able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + /// and then a comparison is done to find out unregistered machines and are marked for delete. + /// This field will be set by the actuators and consumed by higher level entities like autoscaler that will + /// be interfacing with cluster-api as generic provider. #[serde(default, skip_serializing_if = "Option::is_none", rename = "providerID")] pub provider_id: Option, - /// Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + /// Version defines the desired Kubernetes version. + /// This field is meant to be optionally used by bootstrap providers. #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, } -/// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. +/// Bootstrap is a reference to a local struct which encapsulates +/// fields to configure the Machine’s bootstrapping mechanism. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineBootstrap { - /// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + /// ConfigRef is a reference to a bootstrap provider-specific resource + /// that holds configuration details. The reference is optional to + /// allow users/operators to specify Bootstrap.DataSecretName without + /// the need of a controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "configRef")] pub config_ref: Option, - /// DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + /// DataSecretName is the name of the secret that stores the bootstrap data script. + /// If nil, the Machine should remain in the Pending state. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSecretName")] pub data_secret_name: Option, } -/// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. +/// ConfigRef is a reference to a bootstrap provider-specific resource +/// that holds configuration details. The reference is optional to +/// allow users/operators to specify Bootstrap.DataSecretName without +/// the need of a controller. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineBootstrapConfigRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. +/// InfrastructureRef is a required reference to a custom resource +/// offered by an infrastructure provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } @@ -100,7 +148,8 @@ pub struct MachineInfrastructureRef { /// MachineStatus defines the observed state of Machine. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineStatus { - /// Addresses is a list of addresses assigned to the machine. This field is copied from the infrastructure provider reference. + /// Addresses is a list of addresses assigned to the machine. + /// This field is copied from the infrastructure provider reference. #[serde(default, skip_serializing_if = "Option::is_none")] pub addresses: Option>, /// BootstrapReady is the state of the bootstrap provider. @@ -109,14 +158,44 @@ pub struct MachineStatus { /// Conditions defines current service state of the Machine. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, - /// FailureMessage will be set in the event that there is a terminal problem reconciling the Machine and will contain a more verbose string suitable for logging and human consumption. - /// This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. - /// Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output. + /// FailureMessage will be set in the event that there is a terminal problem + /// reconciling the Machine and will contain a more verbose string suitable + /// for logging and human consumption. + /// + /// + /// This field should not be set for transitive errors that a controller + /// faces that are expected to be fixed automatically over + /// time (like service outages), but instead indicate that something is + /// fundamentally wrong with the Machine's spec or the configuration of + /// the controller, and that manual intervention is required. Examples + /// of terminal errors would be invalid combinations of settings in the + /// spec, values that are unsupported by the controller, or the + /// responsible controller itself being critically misconfigured. + /// + /// + /// Any transient errors that occur during the reconciliation of Machines + /// can be added as events to the Machine object and/or logged in the + /// controller's output. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureMessage")] pub failure_message: Option, - /// FailureReason will be set in the event that there is a terminal problem reconciling the Machine and will contain a succinct value suitable for machine interpretation. - /// This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. - /// Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output. + /// FailureReason will be set in the event that there is a terminal problem + /// reconciling the Machine and will contain a succinct value suitable + /// for machine interpretation. + /// + /// + /// This field should not be set for transitive errors that a controller + /// faces that are expected to be fixed automatically over + /// time (like service outages), but instead indicate that something is + /// fundamentally wrong with the Machine's spec or the configuration of + /// the controller, and that manual intervention is required. Examples + /// of terminal errors would be invalid combinations of settings in the + /// spec, values that are unsupported by the controller, or the + /// responsible controller itself being critically misconfigured. + /// + /// + /// Any transient errors that occur during the reconciliation of Machines + /// can be added as events to the Machine object and/or logged in the + /// controller's output. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureReason")] pub failure_reason: Option, /// InfrastructureReady is the state of the infrastructure provider. @@ -125,7 +204,8 @@ pub struct MachineStatus { /// LastUpdated identifies when the phase of the Machine last transitioned. #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastUpdated")] pub last_updated: Option, - /// NodeInfo is a set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + /// NodeInfo is a set of ids/uuids to uniquely identify the node. + /// More info: https://kubernetes.io/docs/concepts/nodes/node/#info #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeInfo")] pub node_info: Option, /// NodeRef will point to the corresponding Node if it exists. @@ -134,10 +214,14 @@ pub struct MachineStatus { /// ObservedGeneration is the latest generation observed by the controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// Phase represents the current phase of machine actuation. E.g. Pending, Running, Terminating, Failed etc. + /// Phase represents the current phase of machine actuation. + /// E.g. Pending, Running, Terminating, Failed etc. #[serde(default, skip_serializing_if = "Option::is_none")] pub phase: Option, - /// Version specifies the current version of Kubernetes running on the corresponding Node. This is meant to be a means of bubbling up status from the Node to the Machine. It is entirely optional, but useful for end-user UX if it’s present. + /// Version specifies the current version of Kubernetes running + /// on the corresponding Node. This is meant to be a means of bubbling + /// up status from the Node to the Machine. + /// It is entirely optional, but useful for end-user UX if it’s present. #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, } @@ -155,26 +239,36 @@ pub struct MachineStatusAddresses { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastTransitionTime")] pub last_transition_time: Option, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } -/// NodeInfo is a set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info +/// NodeInfo is a set of ids/uuids to uniquely identify the node. +/// More info: https://kubernetes.io/docs/concepts/nodes/node/#info #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineStatusNodeInfo { /// The Architecture reported by the node @@ -194,7 +288,9 @@ pub struct MachineStatusNodeInfo { /// Kubelet Version reported by the node. #[serde(rename = "kubeletVersion")] pub kubelet_version: String, - /// MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html + /// MachineID reported by the node. For unique machine identification + /// in the cluster this field is preferred. Learn more from man(5) + /// machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html #[serde(rename = "machineID")] pub machine_id: String, /// The Operating System reported by the node @@ -203,7 +299,9 @@ pub struct MachineStatusNodeInfo { /// OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)). #[serde(rename = "osImage")] pub os_image: String, - /// SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid + /// SystemUUID reported by the node. For unique machine identification + /// MachineID is preferred. This field is specific to Red Hat hosts + /// https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid #[serde(rename = "systemUUID")] pub system_uuid: String, } @@ -214,22 +312,34 @@ pub struct MachineStatusNodeRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } diff --git a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinesets.rs b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinesets.rs index c6a0051c7..4f0bb2c6d 100644 --- a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinesets.rs +++ b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1alpha4/machinesets.rs @@ -16,18 +16,27 @@ pub struct MachineSetSpec { /// ClusterName is the name of the Cluster this object belongs to. #[serde(rename = "clusterName")] pub cluster_name: String, - /// DeletePolicy defines the policy used to identify nodes to delete when downscaling. Defaults to "Random". Valid values are "Random, "Newest", "Oldest" + /// DeletePolicy defines the policy used to identify nodes to delete when downscaling. + /// Defaults to "Random". Valid values are "Random, "Newest", "Oldest" #[serde(default, skip_serializing_if = "Option::is_none", rename = "deletePolicy")] pub delete_policy: Option, - /// MinReadySeconds is the minimum number of seconds for which a newly created machine should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) + /// MinReadySeconds is the minimum number of seconds for which a newly created machine should be ready. + /// Defaults to 0 (machine will be considered available as soon as it is ready) #[serde(default, skip_serializing_if = "Option::is_none", rename = "minReadySeconds")] pub min_ready_seconds: Option, - /// Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. + /// Replicas is the number of desired replicas. + /// This is a pointer to distinguish between explicit zero and unspecified. + /// Defaults to 1. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// Selector is a label query over machines that should match the replica count. Label keys and values that must match in order to be controlled by this MachineSet. It must match the machine template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors + /// Selector is a label query over machines that should match the replica count. + /// Label keys and values that must match in order to be controlled by this MachineSet. + /// It must match the machine template's labels. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors pub selector: MachineSetSelector, - /// Template is the object that describes the machine that will be created if insufficient replicas are detected. Object references to custom resources are treated as templates. + /// Template is the object that describes the machine that will be created if + /// insufficient replicas are detected. + /// Object references to custom resources are treated as templates. #[serde(default, skip_serializing_if = "Option::is_none")] pub template: Option, } @@ -40,135 +49,205 @@ pub enum MachineSetDeletePolicy { Oldest, } -/// Selector is a label query over machines that should match the replica count. Label keys and values that must match in order to be controlled by this MachineSet. It must match the machine template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors +/// Selector is a label query over machines that should match the replica count. +/// Label keys and values that must match in order to be controlled by this MachineSet. +/// It must match the machine template's labels. +/// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] pub match_expressions: Option>, - /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + /// map is equivalent to an element of matchExpressions, whose key field is "key", the + /// operator is "In", and the values array contains only "value". The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] pub match_labels: Option>, } -/// A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +/// A label selector requirement is a selector that contains values, a key, and an operator that +/// relates the key and values. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetSelectorMatchExpressions { /// key is the label key that the selector applies to. pub key: String, - /// operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + /// operator represents a key's relationship to a set of values. + /// Valid operators are In, NotIn, Exists and DoesNotExist. pub operator: String, - /// values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + /// values is an array of string values. If the operator is In or NotIn, + /// the values array must be non-empty. If the operator is Exists or DoesNotExist, + /// the values array must be empty. This array is replaced during a strategic + /// merge patch. #[serde(default, skip_serializing_if = "Option::is_none")] pub values: Option>, } -/// Template is the object that describes the machine that will be created if insufficient replicas are detected. Object references to custom resources are treated as templates. +/// Template is the object that describes the machine that will be created if +/// insufficient replicas are detected. +/// Object references to custom resources are treated as templates. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetTemplate { - /// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// Standard object's metadata. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, - /// Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// Specification of the desired behavior of the machine. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status #[serde(default, skip_serializing_if = "Option::is_none")] pub spec: Option, } -/// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata +/// Standard object's metadata. +/// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetTemplateMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } -/// Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status +/// Specification of the desired behavior of the machine. +/// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetTemplateSpec { - /// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + /// Bootstrap is a reference to a local struct which encapsulates + /// fields to configure the Machine’s bootstrapping mechanism. pub bootstrap: MachineSetTemplateSpecBootstrap, /// ClusterName is the name of the Cluster this object belongs to. #[serde(rename = "clusterName")] pub cluster_name: String, - /// FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + /// FailureDomain is the failure domain the machine will be created in. + /// Must match a key in the FailureDomains map stored on the cluster object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomain")] pub failure_domain: Option, - /// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + /// InfrastructureRef is a required reference to a custom resource + /// offered by an infrastructure provider. #[serde(rename = "infrastructureRef")] pub infrastructure_ref: MachineSetTemplateSpecInfrastructureRef, - /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + /// The default value is 0, meaning that the node can be drained without any time limitations. + /// NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDrainTimeout")] pub node_drain_timeout: Option, - /// ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + /// ProviderID is the identification ID of the machine provided by the provider. + /// This field must match the provider ID as seen on the node object corresponding to this machine. + /// This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + /// with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + /// machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + /// generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + /// able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + /// and then a comparison is done to find out unregistered machines and are marked for delete. + /// This field will be set by the actuators and consumed by higher level entities like autoscaler that will + /// be interfacing with cluster-api as generic provider. #[serde(default, skip_serializing_if = "Option::is_none", rename = "providerID")] pub provider_id: Option, - /// Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + /// Version defines the desired Kubernetes version. + /// This field is meant to be optionally used by bootstrap providers. #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, } -/// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. +/// Bootstrap is a reference to a local struct which encapsulates +/// fields to configure the Machine’s bootstrapping mechanism. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetTemplateSpecBootstrap { - /// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + /// ConfigRef is a reference to a bootstrap provider-specific resource + /// that holds configuration details. The reference is optional to + /// allow users/operators to specify Bootstrap.DataSecretName without + /// the need of a controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "configRef")] pub config_ref: Option, - /// DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + /// DataSecretName is the name of the secret that stores the bootstrap data script. + /// If nil, the Machine should remain in the Pending state. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSecretName")] pub data_secret_name: Option, } -/// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. +/// ConfigRef is a reference to a bootstrap provider-specific resource +/// that holds configuration details. The reference is optional to +/// allow users/operators to specify Bootstrap.DataSecretName without +/// the need of a controller. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetTemplateSpecBootstrapConfigRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. +/// InfrastructureRef is a required reference to a custom resource +/// offered by an infrastructure provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetTemplateSpecInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } @@ -184,9 +263,26 @@ pub struct MachineSetStatus { pub conditions: Option>, #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureMessage")] pub failure_message: Option, - /// In the event that there is a terminal problem reconciling the replicas, both FailureReason and FailureMessage will be set. FailureReason will be populated with a succinct value suitable for machine interpretation, while FailureMessage will contain a more verbose string suitable for logging and human consumption. - /// These fields should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the MachineTemplate's spec or the configuration of the machine controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the machine controller, or the responsible machine controller itself being critically misconfigured. - /// Any transient errors that occur during the reconciliation of Machines can be added as events to the MachineSet object and/or logged in the controller's output. + /// In the event that there is a terminal problem reconciling the + /// replicas, both FailureReason and FailureMessage will be set. FailureReason + /// will be populated with a succinct value suitable for machine + /// interpretation, while FailureMessage will contain a more verbose + /// string suitable for logging and human consumption. + /// + /// + /// These fields should not be set for transitive errors that a + /// controller faces that are expected to be fixed automatically over + /// time (like service outages), but instead indicate that something is + /// fundamentally wrong with the MachineTemplate's spec or the configuration of + /// the machine controller, and that manual intervention is required. Examples + /// of terminal errors would be invalid combinations of settings in the + /// spec, values that are unsupported by the machine controller, or the + /// responsible machine controller itself being critically misconfigured. + /// + /// + /// Any transient errors that occur during the reconciliation of Machines + /// can be added as events to the MachineSet object and/or logged in the + /// controller's output. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureReason")] pub failure_reason: Option, /// The number of replicas that have labels matching the labels of the machine template of the MachineSet. @@ -201,7 +297,9 @@ pub struct MachineSetStatus { /// Replicas is the most recently observed number of replicas. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// Selector is the same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors + /// Selector is the same as the label selector but in the string format to avoid introspection + /// by clients. The string will be in the same format as the query-param syntax. + /// More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, } @@ -209,21 +307,30 @@ pub struct MachineSetStatus { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastTransitionTime")] pub last_transition_time: Option, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } diff --git a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/clusterclasses.rs b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/clusterclasses.rs index cf6d6f6b5..0b568fb87 100644 --- a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/clusterclasses.rs +++ b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/clusterclasses.rs @@ -15,103 +15,170 @@ use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; #[kube(status = "ClusterClassStatus")] #[kube(schema = "disabled")] pub struct ClusterClassSpec { - /// ControlPlane is a reference to a local struct that holds the details for provisioning the Control Plane for the Cluster. + /// ControlPlane is a reference to a local struct that holds the details + /// for provisioning the Control Plane for the Cluster. #[serde(default, skip_serializing_if = "Option::is_none", rename = "controlPlane")] pub control_plane: Option, - /// Infrastructure is a reference to a provider-specific template that holds the details for provisioning infrastructure specific cluster for the underlying provider. The underlying provider is responsible for the implementation of the template to an infrastructure cluster. + /// Infrastructure is a reference to a provider-specific template that holds + /// the details for provisioning infrastructure specific cluster + /// for the underlying provider. + /// The underlying provider is responsible for the implementation + /// of the template to an infrastructure cluster. #[serde(default, skip_serializing_if = "Option::is_none")] pub infrastructure: Option, - /// Patches defines the patches which are applied to customize referenced templates of a ClusterClass. Note: Patches will be applied in the order of the array. + /// Patches defines the patches which are applied to customize + /// referenced templates of a ClusterClass. + /// Note: Patches will be applied in the order of the array. #[serde(default, skip_serializing_if = "Option::is_none")] pub patches: Option>, - /// Variables defines the variables which can be configured in the Cluster topology and are then used in patches. + /// Variables defines the variables which can be configured + /// in the Cluster topology and are then used in patches. #[serde(default, skip_serializing_if = "Option::is_none")] pub variables: Option>, - /// Workers describes the worker nodes for the cluster. It is a collection of node types which can be used to create the worker nodes of the cluster. + /// Workers describes the worker nodes for the cluster. + /// It is a collection of node types which can be used to create + /// the worker nodes of the cluster. #[serde(default, skip_serializing_if = "Option::is_none")] pub workers: Option, } -/// ControlPlane is a reference to a local struct that holds the details for provisioning the Control Plane for the Cluster. +/// ControlPlane is a reference to a local struct that holds the details +/// for provisioning the Control Plane for the Cluster. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassControlPlane { - /// MachineHealthCheck defines a MachineHealthCheck for this ControlPlaneClass. This field is supported if and only if the ControlPlane provider template referenced above is Machine based and supports setting replicas. + /// MachineHealthCheck defines a MachineHealthCheck for this ControlPlaneClass. + /// This field is supported if and only if the ControlPlane provider template + /// referenced above is Machine based and supports setting replicas. #[serde(default, skip_serializing_if = "Option::is_none", rename = "machineHealthCheck")] pub machine_health_check: Option, - /// MachineInfrastructure defines the metadata and infrastructure information for control plane machines. - /// This field is supported if and only if the control plane provider template referenced above is Machine based and supports setting replicas. + /// MachineInfrastructure defines the metadata and infrastructure information + /// for control plane machines. + /// + /// + /// This field is supported if and only if the control plane provider template + /// referenced above is Machine based and supports setting replicas. #[serde(default, skip_serializing_if = "Option::is_none", rename = "machineInfrastructure")] pub machine_infrastructure: Option, - /// Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane if the ControlPlaneTemplate referenced is machine based. If not, it is applied only to the ControlPlane. At runtime this metadata is merged with the corresponding metadata from the topology. - /// This field is supported if and only if the control plane provider template referenced is Machine based. + /// Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane + /// if the ControlPlaneTemplate referenced is machine based. If not, it is applied only to the + /// ControlPlane. + /// At runtime this metadata is merged with the corresponding metadata from the topology. + /// + /// + /// This field is supported if and only if the control plane provider template + /// referenced is Machine based. #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, /// NamingStrategy allows changing the naming pattern used when creating the control plane provider object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namingStrategy")] pub naming_strategy: Option, - /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. NOTE: This value can be overridden while defining a Cluster.Topology. + /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + /// hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + /// Defaults to 10 seconds. + /// NOTE: This value can be overridden while defining a Cluster.Topology. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDeletionTimeout")] pub node_deletion_timeout: Option, - /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` NOTE: This value can be overridden while defining a Cluster.Topology. + /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + /// The default value is 0, meaning that the node can be drained without any time limitations. + /// NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + /// NOTE: This value can be overridden while defining a Cluster.Topology. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDrainTimeout")] pub node_drain_timeout: Option, - /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. NOTE: This value can be overridden while defining a Cluster.Topology. + /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + /// to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + /// NOTE: This value can be overridden while defining a Cluster.Topology. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeVolumeDetachTimeout")] pub node_volume_detach_timeout: Option, - /// Ref is a required reference to a custom resource offered by a provider. + /// Ref is a required reference to a custom resource + /// offered by a provider. #[serde(rename = "ref")] pub r#ref: ClusterClassControlPlaneRef, } -/// MachineHealthCheck defines a MachineHealthCheck for this ControlPlaneClass. This field is supported if and only if the ControlPlane provider template referenced above is Machine based and supports setting replicas. +/// MachineHealthCheck defines a MachineHealthCheck for this ControlPlaneClass. +/// This field is supported if and only if the ControlPlane provider template +/// referenced above is Machine based and supports setting replicas. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassControlPlaneMachineHealthCheck { - /// Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by "selector" are not healthy. + /// Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by + /// "selector" are not healthy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnhealthy")] pub max_unhealthy: Option, - /// Machines older than this duration without a node will be considered to have failed and will be remediated. If you wish to disable this feature, set the value explicitly to 0. + /// Machines older than this duration without a node will be considered to have + /// failed and will be remediated. + /// If you wish to disable this feature, set the value explicitly to 0. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeStartupTimeout")] pub node_startup_timeout: Option, - /// RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. - /// This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. + /// RemediationTemplate is a reference to a remediation template + /// provided by an infrastructure provider. + /// + /// + /// This field is completely optional, when filled, the MachineHealthCheck controller + /// creates a new object from the template referenced and hands off remediation of the machine to + /// a controller that lives outside of Cluster API. #[serde(default, skip_serializing_if = "Option::is_none", rename = "remediationTemplate")] pub remediation_template: Option, - /// UnhealthyConditions contains a list of the conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. + /// UnhealthyConditions contains a list of the conditions that determine + /// whether a node is considered unhealthy. The conditions are combined in a + /// logical OR, i.e. if any of the conditions is met, the node is unhealthy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "unhealthyConditions")] pub unhealthy_conditions: Option>, - /// Any further remediation is only allowed if the number of machines selected by "selector" as not healthy is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. Eg. "[3-5]" - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy machines (and) (b) there are at most 5 unhealthy machines + /// Any further remediation is only allowed if the number of machines selected by "selector" as not healthy + /// is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. + /// Eg. "[3-5]" - This means that remediation will be allowed only when: + /// (a) there are at least 3 unhealthy machines (and) + /// (b) there are at most 5 unhealthy machines #[serde(default, skip_serializing_if = "Option::is_none", rename = "unhealthyRange")] pub unhealthy_range: Option, } -/// RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. -/// This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. +/// RemediationTemplate is a reference to a remediation template +/// provided by an infrastructure provider. +/// +/// +/// This field is completely optional, when filled, the MachineHealthCheck controller +/// creates a new object from the template referenced and hands off remediation of the machine to +/// a controller that lives outside of Cluster API. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassControlPlaneMachineHealthCheckRemediationTemplate { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// UnhealthyCondition represents a Node condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a node is considered unhealthy. +/// UnhealthyCondition represents a Node condition type and value with a timeout +/// specified as a duration. When the named condition has been in the given +/// status for at least the timeout value, a node is considered unhealthy. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassControlPlaneMachineHealthCheckUnhealthyConditions { pub status: String, @@ -120,49 +187,79 @@ pub struct ClusterClassControlPlaneMachineHealthCheckUnhealthyConditions { pub r#type: String, } -/// MachineInfrastructure defines the metadata and infrastructure information for control plane machines. -/// This field is supported if and only if the control plane provider template referenced above is Machine based and supports setting replicas. +/// MachineInfrastructure defines the metadata and infrastructure information +/// for control plane machines. +/// +/// +/// This field is supported if and only if the control plane provider template +/// referenced above is Machine based and supports setting replicas. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassControlPlaneMachineInfrastructure { - /// Ref is a required reference to a custom resource offered by a provider. + /// Ref is a required reference to a custom resource + /// offered by a provider. #[serde(rename = "ref")] pub r#ref: ClusterClassControlPlaneMachineInfrastructureRef, } -/// Ref is a required reference to a custom resource offered by a provider. +/// Ref is a required reference to a custom resource +/// offered by a provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassControlPlaneMachineInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane if the ControlPlaneTemplate referenced is machine based. If not, it is applied only to the ControlPlane. At runtime this metadata is merged with the corresponding metadata from the topology. -/// This field is supported if and only if the control plane provider template referenced is Machine based. +/// Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane +/// if the ControlPlaneTemplate referenced is machine based. If not, it is applied only to the +/// ControlPlane. +/// At runtime this metadata is merged with the corresponding metadata from the topology. +/// +/// +/// This field is supported if and only if the control plane provider template +/// referenced is Machine based. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassControlPlaneMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } @@ -170,67 +267,104 @@ pub struct ClusterClassControlPlaneMetadata { /// NamingStrategy allows changing the naming pattern used when creating the control plane provider object. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassControlPlaneNamingStrategy { - /// Template defines the template to use for generating the name of the ControlPlane object. If not defined, it will fallback to `{{ .cluster.name }}-{{ .random }}`. If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will get concatenated with a random suffix of length 5. The templating mechanism provides the following arguments: * `.cluster.name`: The name of the cluster object. * `.random`: A random alphanumeric string, without vowels, of length 5. + /// Template defines the template to use for generating the name of the ControlPlane object. + /// If not defined, it will fallback to `{{ .cluster.name }}-{{ .random }}`. + /// If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will + /// get concatenated with a random suffix of length 5. + /// The templating mechanism provides the following arguments: + /// * `.cluster.name`: The name of the cluster object. + /// * `.random`: A random alphanumeric string, without vowels, of length 5. #[serde(default, skip_serializing_if = "Option::is_none")] pub template: Option, } -/// Ref is a required reference to a custom resource offered by a provider. +/// Ref is a required reference to a custom resource +/// offered by a provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassControlPlaneRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// Infrastructure is a reference to a provider-specific template that holds the details for provisioning infrastructure specific cluster for the underlying provider. The underlying provider is responsible for the implementation of the template to an infrastructure cluster. +/// Infrastructure is a reference to a provider-specific template that holds +/// the details for provisioning infrastructure specific cluster +/// for the underlying provider. +/// The underlying provider is responsible for the implementation +/// of the template to an infrastructure cluster. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassInfrastructure { - /// Ref is a required reference to a custom resource offered by a provider. + /// Ref is a required reference to a custom resource + /// offered by a provider. #[serde(rename = "ref")] pub r#ref: ClusterClassInfrastructureRef, } -/// Ref is a required reference to a custom resource offered by a provider. +/// Ref is a required reference to a custom resource +/// offered by a provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } @@ -238,16 +372,23 @@ pub struct ClusterClassInfrastructureRef { /// ClusterClassPatch defines a patch which is applied to customize the referenced templates. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassPatches { - /// Definitions define inline patches. Note: Patches will be applied in the order of the array. Note: Exactly one of Definitions or External must be set. + /// Definitions define inline patches. + /// Note: Patches will be applied in the order of the array. + /// Note: Exactly one of Definitions or External must be set. #[serde(default, skip_serializing_if = "Option::is_none")] pub definitions: Option>, /// Description is a human-readable description of this patch. #[serde(default, skip_serializing_if = "Option::is_none")] pub description: Option, - /// EnabledIf is a Go template to be used to calculate if a patch should be enabled. It can reference variables defined in .spec.variables and builtin variables. The patch will be enabled if the template evaluates to `true`, otherwise it will be disabled. If EnabledIf is not set, the patch will be enabled per default. + /// EnabledIf is a Go template to be used to calculate if a patch should be enabled. + /// It can reference variables defined in .spec.variables and builtin variables. + /// The patch will be enabled if the template evaluates to `true`, otherwise it will + /// be disabled. + /// If EnabledIf is not set, the patch will be enabled per default. #[serde(default, skip_serializing_if = "Option::is_none", rename = "enabledIf")] pub enabled_if: Option, - /// External defines an external patch. Note: Exactly one of Definitions or External must be set. + /// External defines an external patch. + /// Note: Exactly one of Definitions or External must be set. #[serde(default, skip_serializing_if = "Option::is_none")] pub external: Option, /// Name of the patch. @@ -257,7 +398,9 @@ pub struct ClusterClassPatches { /// PatchDefinition defines a patch which is applied to customize the referenced templates. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassPatchesDefinitions { - /// JSONPatches defines the patches which should be applied on the templates matching the selector. Note: Patches will be applied in the order of the array. + /// JSONPatches defines the patches which should be applied on the templates + /// matching the selector. + /// Note: Patches will be applied in the order of the array. #[serde(rename = "jsonPatches")] pub json_patches: Vec, /// Selector defines on which templates the patch should be applied. @@ -267,25 +410,43 @@ pub struct ClusterClassPatchesDefinitions { /// JSONPatch defines a JSON patch. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassPatchesDefinitionsJsonPatches { - /// Op defines the operation of the patch. Note: Only `add`, `replace` and `remove` are supported. + /// Op defines the operation of the patch. + /// Note: Only `add`, `replace` and `remove` are supported. pub op: String, - /// Path defines the path of the patch. Note: Only the spec of a template can be patched, thus the path has to start with /spec/. Note: For now the only allowed array modifications are `append` and `prepend`, i.e.: * for op: `add`: only index 0 (prepend) and - (append) are allowed * for op: `replace` or `remove`: no indexes are allowed + /// Path defines the path of the patch. + /// Note: Only the spec of a template can be patched, thus the path has to start with /spec/. + /// Note: For now the only allowed array modifications are `append` and `prepend`, i.e.: + /// * for op: `add`: only index 0 (prepend) and - (append) are allowed + /// * for op: `replace` or `remove`: no indexes are allowed pub path: String, - /// Value defines the value of the patch. Note: Either Value or ValueFrom is required for add and replace operations. Only one of them is allowed to be set at the same time. Note: We have to use apiextensionsv1.JSON instead of our JSON type, because controller-tools has a hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type (unset type field). Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111 + /// Value defines the value of the patch. + /// Note: Either Value or ValueFrom is required for add and replace + /// operations. Only one of them is allowed to be set at the same time. + /// Note: We have to use apiextensionsv1.JSON instead of our JSON type, + /// because controller-tools has a hard-coded schema for apiextensionsv1.JSON + /// which cannot be produced by another type (unset type field). + /// Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111 #[serde(default, skip_serializing_if = "Option::is_none")] pub value: Option>, - /// ValueFrom defines the value of the patch. Note: Either Value or ValueFrom is required for add and replace operations. Only one of them is allowed to be set at the same time. + /// ValueFrom defines the value of the patch. + /// Note: Either Value or ValueFrom is required for add and replace + /// operations. Only one of them is allowed to be set at the same time. #[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")] pub value_from: Option, } -/// ValueFrom defines the value of the patch. Note: Either Value or ValueFrom is required for add and replace operations. Only one of them is allowed to be set at the same time. +/// ValueFrom defines the value of the patch. +/// Note: Either Value or ValueFrom is required for add and replace +/// operations. Only one of them is allowed to be set at the same time. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassPatchesDefinitionsJsonPatchesValueFrom { - /// Template is the Go template to be used to calculate the value. A template can reference variables defined in .spec.variables and builtin variables. Note: The template must evaluate to a valid YAML or JSON value. + /// Template is the Go template to be used to calculate the value. + /// A template can reference variables defined in .spec.variables and builtin variables. + /// Note: The template must evaluate to a valid YAML or JSON value. #[serde(default, skip_serializing_if = "Option::is_none")] pub template: Option, - /// Variable is the variable to be used as value. Variable can be one of the variables defined in .spec.variables or a builtin variable. + /// Variable is the variable to be used as value. + /// Variable can be one of the variables defined in .spec.variables or a builtin variable. #[serde(default, skip_serializing_if = "Option::is_none")] pub variable: Option, } @@ -306,21 +467,26 @@ pub struct ClusterClassPatchesDefinitionsSelector { /// MatchResources selects templates based on where they are referenced. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassPatchesDefinitionsSelectorMatchResources { - /// ControlPlane selects templates referenced in .spec.ControlPlane. Note: this will match the controlPlane and also the controlPlane machineInfrastructure (depending on the kind and apiVersion). + /// ControlPlane selects templates referenced in .spec.ControlPlane. + /// Note: this will match the controlPlane and also the controlPlane + /// machineInfrastructure (depending on the kind and apiVersion). #[serde(default, skip_serializing_if = "Option::is_none", rename = "controlPlane")] pub control_plane: Option, /// InfrastructureCluster selects templates referenced in .spec.infrastructure. #[serde(default, skip_serializing_if = "Option::is_none", rename = "infrastructureCluster")] pub infrastructure_cluster: Option, - /// MachineDeploymentClass selects templates referenced in specific MachineDeploymentClasses in .spec.workers.machineDeployments. + /// MachineDeploymentClass selects templates referenced in specific MachineDeploymentClasses in + /// .spec.workers.machineDeployments. #[serde(default, skip_serializing_if = "Option::is_none", rename = "machineDeploymentClass")] pub machine_deployment_class: Option, - /// MachinePoolClass selects templates referenced in specific MachinePoolClasses in .spec.workers.machinePools. + /// MachinePoolClass selects templates referenced in specific MachinePoolClasses in + /// .spec.workers.machinePools. #[serde(default, skip_serializing_if = "Option::is_none", rename = "machinePoolClass")] pub machine_pool_class: Option, } -/// MachineDeploymentClass selects templates referenced in specific MachineDeploymentClasses in .spec.workers.machineDeployments. +/// MachineDeploymentClass selects templates referenced in specific MachineDeploymentClasses in +/// .spec.workers.machineDeployments. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassPatchesDefinitionsSelectorMatchResourcesMachineDeploymentClass { /// Names selects templates by class names. @@ -328,7 +494,8 @@ pub struct ClusterClassPatchesDefinitionsSelectorMatchResourcesMachineDeployment pub names: Option>, } -/// MachinePoolClass selects templates referenced in specific MachinePoolClasses in .spec.workers.machinePools. +/// MachinePoolClass selects templates referenced in specific MachinePoolClasses in +/// .spec.workers.machinePools. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassPatchesDefinitionsSelectorMatchResourcesMachinePoolClass { /// Names selects templates by class names. @@ -336,7 +503,8 @@ pub struct ClusterClassPatchesDefinitionsSelectorMatchResourcesMachinePoolClass pub names: Option>, } -/// External defines an external patch. Note: Exactly one of Definitions or External must be set. +/// External defines an external patch. +/// Note: Exactly one of Definitions or External must be set. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassPatchesExternal { /// DiscoverVariablesExtension references an extension which is called to discover variables. @@ -345,7 +513,9 @@ pub struct ClusterClassPatchesExternal { /// GenerateExtension references an extension which is called to generate patches. #[serde(default, skip_serializing_if = "Option::is_none", rename = "generateExtension")] pub generate_extension: Option, - /// Settings defines key value pairs to be passed to the extensions. Values defined here take precedence over the values defined in the corresponding ExtensionConfig. + /// Settings defines key value pairs to be passed to the extensions. + /// Values defined here take precedence over the values defined in the + /// corresponding ExtensionConfig. #[serde(default, skip_serializing_if = "Option::is_none")] pub settings: Option>, /// ValidateExtension references an extension which is called to validate the topology. @@ -353,12 +523,16 @@ pub struct ClusterClassPatchesExternal { pub validate_extension: Option, } -/// ClusterClassVariable defines a variable which can be configured in the Cluster topology and used in patches. +/// ClusterClassVariable defines a variable which can +/// be configured in the Cluster topology and used in patches. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassVariables { /// Name of the variable. pub name: String, - /// Required specifies if the variable is required. Note: this applies to the variable as a whole and thus the top-level object defined in the schema. If nested fields are required, this will be specified inside the schema. + /// Required specifies if the variable is required. + /// Note: this applies to the variable as a whole and thus the + /// top-level object defined in the schema. If nested fields are + /// required, this will be specified inside the schema. pub required: bool, /// Schema defines the schema of the variable. pub schema: ClusterClassVariablesSchema, @@ -367,172 +541,267 @@ pub struct ClusterClassVariables { /// Schema defines the schema of the variable. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassVariablesSchema { - /// OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 schema. The schema is a subset of the schema used in Kubernetes CRDs. + /// OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 + /// schema. The schema is a subset of the schema used in + /// Kubernetes CRDs. #[serde(rename = "openAPIV3Schema")] pub open_apiv3_schema: ClusterClassVariablesSchemaOpenApiv3Schema, } -/// OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 schema. The schema is a subset of the schema used in Kubernetes CRDs. +/// OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 +/// schema. The schema is a subset of the schema used in +/// Kubernetes CRDs. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassVariablesSchemaOpenApiv3Schema { - /// AdditionalProperties specifies the schema of values in a map (keys are always strings). NOTE: Can only be set if type is object. NOTE: AdditionalProperties is mutually exclusive with Properties. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible. + /// AdditionalProperties specifies the schema of values in a map (keys are always strings). + /// NOTE: Can only be set if type is object. + /// NOTE: AdditionalProperties is mutually exclusive with Properties. + /// NOTE: This field uses PreserveUnknownFields and Schemaless, + /// because recursive validation is not possible. #[serde(default, skip_serializing_if = "Option::is_none", rename = "additionalProperties")] pub additional_properties: Option>, - /// Default is the default value of the variable. NOTE: Can be set for all types. + /// Default is the default value of the variable. + /// NOTE: Can be set for all types. #[serde(default, skip_serializing_if = "Option::is_none")] pub default: Option>, /// Description is a human-readable description of this variable. #[serde(default, skip_serializing_if = "Option::is_none")] pub description: Option, - /// Enum is the list of valid values of the variable. NOTE: Can be set for all types. + /// Enum is the list of valid values of the variable. + /// NOTE: Can be set for all types. #[serde(default, skip_serializing_if = "Option::is_none", rename = "enum")] pub r#enum: Option>>, /// Example is an example for this variable. #[serde(default, skip_serializing_if = "Option::is_none")] pub example: Option>, - /// ExclusiveMaximum specifies if the Maximum is exclusive. NOTE: Can only be set if type is integer or number. + /// ExclusiveMaximum specifies if the Maximum is exclusive. + /// NOTE: Can only be set if type is integer or number. #[serde(default, skip_serializing_if = "Option::is_none", rename = "exclusiveMaximum")] pub exclusive_maximum: Option, - /// ExclusiveMinimum specifies if the Minimum is exclusive. NOTE: Can only be set if type is integer or number. + /// ExclusiveMinimum specifies if the Minimum is exclusive. + /// NOTE: Can only be set if type is integer or number. #[serde(default, skip_serializing_if = "Option::is_none", rename = "exclusiveMinimum")] pub exclusive_minimum: Option, - /// Format is an OpenAPI v3 format string. Unknown formats are ignored. For a list of supported formats please see: (of the k8s.io/apiextensions-apiserver version we're currently using) https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apiserver/validation/formats.go NOTE: Can only be set if type is string. + /// Format is an OpenAPI v3 format string. Unknown formats are ignored. + /// For a list of supported formats please see: (of the k8s.io/apiextensions-apiserver version we're currently using) + /// https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apiserver/validation/formats.go + /// NOTE: Can only be set if type is string. #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, - /// Items specifies fields of an array. NOTE: Can only be set if type is array. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible. + /// Items specifies fields of an array. + /// NOTE: Can only be set if type is array. + /// NOTE: This field uses PreserveUnknownFields and Schemaless, + /// because recursive validation is not possible. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, - /// MaxItems is the max length of an array variable. NOTE: Can only be set if type is array. + /// MaxItems is the max length of an array variable. + /// NOTE: Can only be set if type is array. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxItems")] pub max_items: Option, - /// MaxLength is the max length of a string variable. NOTE: Can only be set if type is string. + /// MaxLength is the max length of a string variable. + /// NOTE: Can only be set if type is string. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxLength")] pub max_length: Option, - /// Maximum is the maximum of an integer or number variable. If ExclusiveMaximum is false, the variable is valid if it is lower than, or equal to, the value of Maximum. If ExclusiveMaximum is true, the variable is valid if it is strictly lower than the value of Maximum. NOTE: Can only be set if type is integer or number. + /// Maximum is the maximum of an integer or number variable. + /// If ExclusiveMaximum is false, the variable is valid if it is lower than, or equal to, the value of Maximum. + /// If ExclusiveMaximum is true, the variable is valid if it is strictly lower than the value of Maximum. + /// NOTE: Can only be set if type is integer or number. #[serde(default, skip_serializing_if = "Option::is_none")] pub maximum: Option, - /// MinItems is the min length of an array variable. NOTE: Can only be set if type is array. + /// MinItems is the min length of an array variable. + /// NOTE: Can only be set if type is array. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minItems")] pub min_items: Option, - /// MinLength is the min length of a string variable. NOTE: Can only be set if type is string. + /// MinLength is the min length of a string variable. + /// NOTE: Can only be set if type is string. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minLength")] pub min_length: Option, - /// Minimum is the minimum of an integer or number variable. If ExclusiveMinimum is false, the variable is valid if it is greater than, or equal to, the value of Minimum. If ExclusiveMinimum is true, the variable is valid if it is strictly greater than the value of Minimum. NOTE: Can only be set if type is integer or number. + /// Minimum is the minimum of an integer or number variable. + /// If ExclusiveMinimum is false, the variable is valid if it is greater than, or equal to, the value of Minimum. + /// If ExclusiveMinimum is true, the variable is valid if it is strictly greater than the value of Minimum. + /// NOTE: Can only be set if type is integer or number. #[serde(default, skip_serializing_if = "Option::is_none")] pub minimum: Option, - /// Pattern is the regex which a string variable must match. NOTE: Can only be set if type is string. + /// Pattern is the regex which a string variable must match. + /// NOTE: Can only be set if type is string. #[serde(default, skip_serializing_if = "Option::is_none")] pub pattern: Option, - /// Properties specifies fields of an object. NOTE: Can only be set if type is object. NOTE: Properties is mutually exclusive with AdditionalProperties. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible. + /// Properties specifies fields of an object. + /// NOTE: Can only be set if type is object. + /// NOTE: Properties is mutually exclusive with AdditionalProperties. + /// NOTE: This field uses PreserveUnknownFields and Schemaless, + /// because recursive validation is not possible. #[serde(default, skip_serializing_if = "Option::is_none")] pub properties: Option>, - /// Required specifies which fields of an object are required. NOTE: Can only be set if type is object. + /// Required specifies which fields of an object are required. + /// NOTE: Can only be set if type is object. #[serde(default, skip_serializing_if = "Option::is_none")] pub required: Option>, - /// Type is the type of the variable. Valid values are: object, array, string, integer, number or boolean. + /// Type is the type of the variable. + /// Valid values are: object, array, string, integer, number or boolean. #[serde(rename = "type")] pub r#type: String, - /// UniqueItems specifies if items in an array must be unique. NOTE: Can only be set if type is array. + /// UniqueItems specifies if items in an array must be unique. + /// NOTE: Can only be set if type is array. #[serde(default, skip_serializing_if = "Option::is_none", rename = "uniqueItems")] pub unique_items: Option, - /// XPreserveUnknownFields allows setting fields in a variable object which are not defined in the variable schema. This affects fields recursively, except if nested properties or additionalProperties are specified in the schema. + /// XPreserveUnknownFields allows setting fields in a variable object + /// which are not defined in the variable schema. This affects fields recursively, + /// except if nested properties or additionalProperties are specified in the schema. #[serde(default, skip_serializing_if = "Option::is_none", rename = "x-kubernetes-preserve-unknown-fields")] pub x_kubernetes_preserve_unknown_fields: Option, } -/// Workers describes the worker nodes for the cluster. It is a collection of node types which can be used to create the worker nodes of the cluster. +/// Workers describes the worker nodes for the cluster. +/// It is a collection of node types which can be used to create +/// the worker nodes of the cluster. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkers { - /// MachineDeployments is a list of machine deployment classes that can be used to create a set of worker nodes. + /// MachineDeployments is a list of machine deployment classes that can be used to create + /// a set of worker nodes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "machineDeployments")] pub machine_deployments: Option>, - /// MachinePools is a list of machine pool classes that can be used to create a set of worker nodes. + /// MachinePools is a list of machine pool classes that can be used to create + /// a set of worker nodes. #[serde(default, skip_serializing_if = "Option::is_none", rename = "machinePools")] pub machine_pools: Option>, } -/// MachineDeploymentClass serves as a template to define a set of worker nodes of the cluster provisioned using the `ClusterClass`. +/// MachineDeploymentClass serves as a template to define a set of worker nodes of the cluster +/// provisioned using the `ClusterClass`. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeployments { - /// Class denotes a type of worker node present in the cluster, this name MUST be unique within a ClusterClass and can be referenced in the Cluster to create a managed MachineDeployment. + /// Class denotes a type of worker node present in the cluster, + /// this name MUST be unique within a ClusterClass and can be referenced + /// in the Cluster to create a managed MachineDeployment. pub class: String, - /// FailureDomain is the failure domain the machines will be created in. Must match a key in the FailureDomains map stored on the cluster object. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. + /// FailureDomain is the failure domain the machines will be created in. + /// Must match a key in the FailureDomains map stored on the cluster object. + /// NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomain")] pub failure_domain: Option, /// MachineHealthCheck defines a MachineHealthCheck for this MachineDeploymentClass. #[serde(default, skip_serializing_if = "Option::is_none", rename = "machineHealthCheck")] pub machine_health_check: Option, - /// Minimum number of seconds for which a newly created machine should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. + /// Minimum number of seconds for which a newly created machine should + /// be ready. + /// Defaults to 0 (machine will be considered available as soon as it + /// is ready) + /// NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minReadySeconds")] pub min_ready_seconds: Option, /// NamingStrategy allows changing the naming pattern used when creating the MachineDeployment. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namingStrategy")] pub naming_strategy: Option, - /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. + /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + /// hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + /// Defaults to 10 seconds. + /// NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDeletionTimeout")] pub node_deletion_timeout: Option, - /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. + /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + /// The default value is 0, meaning that the node can be drained without any time limitations. + /// NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + /// NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDrainTimeout")] pub node_drain_timeout: Option, - /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. + /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + /// to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + /// NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeVolumeDetachTimeout")] pub node_volume_detach_timeout: Option, - /// The deployment strategy to use to replace existing machines with new ones. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. + /// The deployment strategy to use to replace existing machines with + /// new ones. + /// NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. #[serde(default, skip_serializing_if = "Option::is_none")] pub strategy: Option, - /// Template is a local struct containing a collection of templates for creation of MachineDeployment objects representing a set of worker nodes. + /// Template is a local struct containing a collection of templates for creation of + /// MachineDeployment objects representing a set of worker nodes. pub template: ClusterClassWorkersMachineDeploymentsTemplate, } /// MachineHealthCheck defines a MachineHealthCheck for this MachineDeploymentClass. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsMachineHealthCheck { - /// Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by "selector" are not healthy. + /// Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by + /// "selector" are not healthy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnhealthy")] pub max_unhealthy: Option, - /// Machines older than this duration without a node will be considered to have failed and will be remediated. If you wish to disable this feature, set the value explicitly to 0. + /// Machines older than this duration without a node will be considered to have + /// failed and will be remediated. + /// If you wish to disable this feature, set the value explicitly to 0. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeStartupTimeout")] pub node_startup_timeout: Option, - /// RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. - /// This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. + /// RemediationTemplate is a reference to a remediation template + /// provided by an infrastructure provider. + /// + /// + /// This field is completely optional, when filled, the MachineHealthCheck controller + /// creates a new object from the template referenced and hands off remediation of the machine to + /// a controller that lives outside of Cluster API. #[serde(default, skip_serializing_if = "Option::is_none", rename = "remediationTemplate")] pub remediation_template: Option, - /// UnhealthyConditions contains a list of the conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. + /// UnhealthyConditions contains a list of the conditions that determine + /// whether a node is considered unhealthy. The conditions are combined in a + /// logical OR, i.e. if any of the conditions is met, the node is unhealthy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "unhealthyConditions")] pub unhealthy_conditions: Option>, - /// Any further remediation is only allowed if the number of machines selected by "selector" as not healthy is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. Eg. "[3-5]" - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy machines (and) (b) there are at most 5 unhealthy machines + /// Any further remediation is only allowed if the number of machines selected by "selector" as not healthy + /// is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. + /// Eg. "[3-5]" - This means that remediation will be allowed only when: + /// (a) there are at least 3 unhealthy machines (and) + /// (b) there are at most 5 unhealthy machines #[serde(default, skip_serializing_if = "Option::is_none", rename = "unhealthyRange")] pub unhealthy_range: Option, } -/// RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. -/// This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. +/// RemediationTemplate is a reference to a remediation template +/// provided by an infrastructure provider. +/// +/// +/// This field is completely optional, when filled, the MachineHealthCheck controller +/// creates a new object from the template referenced and hands off remediation of the machine to +/// a controller that lives outside of Cluster API. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsMachineHealthCheckRemediationTemplate { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// UnhealthyCondition represents a Node condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a node is considered unhealthy. +/// UnhealthyCondition represents a Node condition type and value with a timeout +/// specified as a duration. When the named condition has been in the given +/// status for at least the timeout value, a node is considered unhealthy. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsMachineHealthCheckUnhealthyConditions { pub status: String, @@ -544,37 +813,75 @@ pub struct ClusterClassWorkersMachineDeploymentsMachineHealthCheckUnhealthyCondi /// NamingStrategy allows changing the naming pattern used when creating the MachineDeployment. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsNamingStrategy { - /// Template defines the template to use for generating the name of the MachineDeployment object. If not defined, it will fallback to `{{ .cluster.name }}-{{ .machineDeployment.topologyName }}-{{ .random }}`. If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will get concatenated with a random suffix of length 5. The templating mechanism provides the following arguments: * `.cluster.name`: The name of the cluster object. * `.random`: A random alphanumeric string, without vowels, of length 5. * `.machineDeployment.topologyName`: The name of the MachineDeployment topology (Cluster.spec.topology.workers.machineDeployments[].name). + /// Template defines the template to use for generating the name of the MachineDeployment object. + /// If not defined, it will fallback to `{{ .cluster.name }}-{{ .machineDeployment.topologyName }}-{{ .random }}`. + /// If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will + /// get concatenated with a random suffix of length 5. + /// The templating mechanism provides the following arguments: + /// * `.cluster.name`: The name of the cluster object. + /// * `.random`: A random alphanumeric string, without vowels, of length 5. + /// * `.machineDeployment.topologyName`: The name of the MachineDeployment topology (Cluster.spec.topology.workers.machineDeployments[].name). #[serde(default, skip_serializing_if = "Option::is_none")] pub template: Option, } -/// The deployment strategy to use to replace existing machines with new ones. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. +/// The deployment strategy to use to replace existing machines with +/// new ones. +/// NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsStrategy { - /// Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. + /// Rolling update config params. Present only if + /// MachineDeploymentStrategyType = RollingUpdate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "rollingUpdate")] pub rolling_update: Option, - /// Type of deployment. Allowed values are RollingUpdate and OnDelete. The default is RollingUpdate. + /// Type of deployment. Allowed values are RollingUpdate and OnDelete. + /// The default is RollingUpdate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. +/// Rolling update config params. Present only if +/// MachineDeploymentStrategyType = RollingUpdate. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsStrategyRollingUpdate { - /// DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. Valid values are "Random, "Newest", "Oldest" When no value is supplied, the default DeletePolicy of MachineSet is used + /// DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. + /// Valid values are "Random, "Newest", "Oldest" + /// When no value is supplied, the default DeletePolicy of MachineSet is used #[serde(default, skip_serializing_if = "Option::is_none", rename = "deletePolicy")] pub delete_policy: Option, - /// The maximum number of machines that can be scheduled above the desired number of machines. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 1. Example: when this is set to 30%, the new MachineSet can be scaled up immediately when the rolling update starts, such that the total number of old and new machines do not exceed 130% of desired machines. Once old machines have been killed, new MachineSet can be scaled up further, ensuring that total number of machines running at any time during the update is at most 130% of desired machines. + /// The maximum number of machines that can be scheduled above the + /// desired number of machines. + /// Value can be an absolute number (ex: 5) or a percentage of + /// desired machines (ex: 10%). + /// This can not be 0 if MaxUnavailable is 0. + /// Absolute number is calculated from percentage by rounding up. + /// Defaults to 1. + /// Example: when this is set to 30%, the new MachineSet can be scaled + /// up immediately when the rolling update starts, such that the total + /// number of old and new machines do not exceed 130% of desired + /// machines. Once old machines have been killed, new MachineSet can + /// be scaled up further, ensuring that total number of machines running + /// at any time during the update is at most 130% of desired machines. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxSurge")] pub max_surge: Option, - /// The maximum number of machines that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 0. Example: when this is set to 30%, the old MachineSet can be scaled down to 70% of desired machines immediately when the rolling update starts. Once new machines are ready, old MachineSet can be scaled down further, followed by scaling up the new MachineSet, ensuring that the total number of machines available at all times during the update is at least 70% of desired machines. + /// The maximum number of machines that can be unavailable during the update. + /// Value can be an absolute number (ex: 5) or a percentage of desired + /// machines (ex: 10%). + /// Absolute number is calculated from percentage by rounding down. + /// This can not be 0 if MaxSurge is 0. + /// Defaults to 0. + /// Example: when this is set to 30%, the old MachineSet can be scaled + /// down to 70% of desired machines immediately when the rolling update + /// starts. Once new machines are ready, old MachineSet can be scaled + /// down further, followed by scaling up the new MachineSet, ensuring + /// that the total number of machines available at all times + /// during the update is at least 70% of desired machines. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")] pub max_unavailable: Option, } -/// Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. +/// Rolling update config params. Present only if +/// MachineDeploymentStrategyType = RollingUpdate. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum ClusterClassWorkersMachineDeploymentsStrategyRollingUpdateDeletePolicy { Random, @@ -582,226 +889,335 @@ pub enum ClusterClassWorkersMachineDeploymentsStrategyRollingUpdateDeletePolicy Oldest, } -/// The deployment strategy to use to replace existing machines with new ones. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. +/// The deployment strategy to use to replace existing machines with +/// new ones. +/// NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum ClusterClassWorkersMachineDeploymentsStrategyType { RollingUpdate, OnDelete, } -/// Template is a local struct containing a collection of templates for creation of MachineDeployment objects representing a set of worker nodes. +/// Template is a local struct containing a collection of templates for creation of +/// MachineDeployment objects representing a set of worker nodes. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsTemplate { - /// Bootstrap contains the bootstrap template reference to be used for the creation of worker Machines. + /// Bootstrap contains the bootstrap template reference to be used + /// for the creation of worker Machines. pub bootstrap: ClusterClassWorkersMachineDeploymentsTemplateBootstrap, - /// Infrastructure contains the infrastructure template reference to be used for the creation of worker Machines. + /// Infrastructure contains the infrastructure template reference to be used + /// for the creation of worker Machines. pub infrastructure: ClusterClassWorkersMachineDeploymentsTemplateInfrastructure, - /// Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment. At runtime this metadata is merged with the corresponding metadata from the topology. + /// Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment. + /// At runtime this metadata is merged with the corresponding metadata from the topology. #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, } -/// Bootstrap contains the bootstrap template reference to be used for the creation of worker Machines. +/// Bootstrap contains the bootstrap template reference to be used +/// for the creation of worker Machines. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsTemplateBootstrap { - /// Ref is a required reference to a custom resource offered by a provider. + /// Ref is a required reference to a custom resource + /// offered by a provider. #[serde(rename = "ref")] pub r#ref: ClusterClassWorkersMachineDeploymentsTemplateBootstrapRef, } -/// Ref is a required reference to a custom resource offered by a provider. +/// Ref is a required reference to a custom resource +/// offered by a provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsTemplateBootstrapRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// Infrastructure contains the infrastructure template reference to be used for the creation of worker Machines. +/// Infrastructure contains the infrastructure template reference to be used +/// for the creation of worker Machines. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsTemplateInfrastructure { - /// Ref is a required reference to a custom resource offered by a provider. + /// Ref is a required reference to a custom resource + /// offered by a provider. #[serde(rename = "ref")] pub r#ref: ClusterClassWorkersMachineDeploymentsTemplateInfrastructureRef, } -/// Ref is a required reference to a custom resource offered by a provider. +/// Ref is a required reference to a custom resource +/// offered by a provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsTemplateInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment. At runtime this metadata is merged with the corresponding metadata from the topology. +/// Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment. +/// At runtime this metadata is merged with the corresponding metadata from the topology. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachineDeploymentsTemplateMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } -/// MachinePoolClass serves as a template to define a pool of worker nodes of the cluster provisioned using `ClusterClass`. +/// MachinePoolClass serves as a template to define a pool of worker nodes of the cluster +/// provisioned using `ClusterClass`. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachinePools { - /// Class denotes a type of machine pool present in the cluster, this name MUST be unique within a ClusterClass and can be referenced in the Cluster to create a managed MachinePool. + /// Class denotes a type of machine pool present in the cluster, + /// this name MUST be unique within a ClusterClass and can be referenced + /// in the Cluster to create a managed MachinePool. pub class: String, - /// FailureDomains is the list of failure domains the MachinePool should be attached to. Must match a key in the FailureDomains map stored on the cluster object. NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. + /// FailureDomains is the list of failure domains the MachinePool should be attached to. + /// Must match a key in the FailureDomains map stored on the cluster object. + /// NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomains")] pub failure_domains: Option>, - /// Minimum number of seconds for which a newly created machine pool should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. + /// Minimum number of seconds for which a newly created machine pool should + /// be ready. + /// Defaults to 0 (machine will be considered available as soon as it + /// is ready) + /// NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minReadySeconds")] pub min_ready_seconds: Option, /// NamingStrategy allows changing the naming pattern used when creating the MachinePool. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namingStrategy")] pub naming_strategy: Option, - /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine Pool is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. + /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + /// hosts after the Machine Pool is marked for deletion. A duration of 0 will retry deletion indefinitely. + /// Defaults to 10 seconds. + /// NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDeletionTimeout")] pub node_deletion_timeout: Option, - /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. + /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + /// The default value is 0, meaning that the node can be drained without any time limitations. + /// NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + /// NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDrainTimeout")] pub node_drain_timeout: Option, - /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. + /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + /// to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + /// NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeVolumeDetachTimeout")] pub node_volume_detach_timeout: Option, - /// Template is a local struct containing a collection of templates for creation of MachinePools objects representing a pool of worker nodes. + /// Template is a local struct containing a collection of templates for creation of + /// MachinePools objects representing a pool of worker nodes. pub template: ClusterClassWorkersMachinePoolsTemplate, } /// NamingStrategy allows changing the naming pattern used when creating the MachinePool. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachinePoolsNamingStrategy { - /// Template defines the template to use for generating the name of the MachinePool object. If not defined, it will fallback to `{{ .cluster.name }}-{{ .machinePool.topologyName }}-{{ .random }}`. If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will get concatenated with a random suffix of length 5. The templating mechanism provides the following arguments: * `.cluster.name`: The name of the cluster object. * `.random`: A random alphanumeric string, without vowels, of length 5. * `.machinePool.topologyName`: The name of the MachinePool topology (Cluster.spec.topology.workers.machinePools[].name). + /// Template defines the template to use for generating the name of the MachinePool object. + /// If not defined, it will fallback to `{{ .cluster.name }}-{{ .machinePool.topologyName }}-{{ .random }}`. + /// If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will + /// get concatenated with a random suffix of length 5. + /// The templating mechanism provides the following arguments: + /// * `.cluster.name`: The name of the cluster object. + /// * `.random`: A random alphanumeric string, without vowels, of length 5. + /// * `.machinePool.topologyName`: The name of the MachinePool topology (Cluster.spec.topology.workers.machinePools[].name). #[serde(default, skip_serializing_if = "Option::is_none")] pub template: Option, } -/// Template is a local struct containing a collection of templates for creation of MachinePools objects representing a pool of worker nodes. +/// Template is a local struct containing a collection of templates for creation of +/// MachinePools objects representing a pool of worker nodes. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachinePoolsTemplate { - /// Bootstrap contains the bootstrap template reference to be used for the creation of the Machines in the MachinePool. + /// Bootstrap contains the bootstrap template reference to be used + /// for the creation of the Machines in the MachinePool. pub bootstrap: ClusterClassWorkersMachinePoolsTemplateBootstrap, - /// Infrastructure contains the infrastructure template reference to be used for the creation of the MachinePool. + /// Infrastructure contains the infrastructure template reference to be used + /// for the creation of the MachinePool. pub infrastructure: ClusterClassWorkersMachinePoolsTemplateInfrastructure, - /// Metadata is the metadata applied to the MachinePool. At runtime this metadata is merged with the corresponding metadata from the topology. + /// Metadata is the metadata applied to the MachinePool. + /// At runtime this metadata is merged with the corresponding metadata from the topology. #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, } -/// Bootstrap contains the bootstrap template reference to be used for the creation of the Machines in the MachinePool. +/// Bootstrap contains the bootstrap template reference to be used +/// for the creation of the Machines in the MachinePool. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachinePoolsTemplateBootstrap { - /// Ref is a required reference to a custom resource offered by a provider. + /// Ref is a required reference to a custom resource + /// offered by a provider. #[serde(rename = "ref")] pub r#ref: ClusterClassWorkersMachinePoolsTemplateBootstrapRef, } -/// Ref is a required reference to a custom resource offered by a provider. +/// Ref is a required reference to a custom resource +/// offered by a provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachinePoolsTemplateBootstrapRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// Infrastructure contains the infrastructure template reference to be used for the creation of the MachinePool. +/// Infrastructure contains the infrastructure template reference to be used +/// for the creation of the MachinePool. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachinePoolsTemplateInfrastructure { - /// Ref is a required reference to a custom resource offered by a provider. + /// Ref is a required reference to a custom resource + /// offered by a provider. #[serde(rename = "ref")] pub r#ref: ClusterClassWorkersMachinePoolsTemplateInfrastructureRef, } -/// Ref is a required reference to a custom resource offered by a provider. +/// Ref is a required reference to a custom resource +/// offered by a provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachinePoolsTemplateInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// Metadata is the metadata applied to the MachinePool. At runtime this metadata is merged with the corresponding metadata from the topology. +/// Metadata is the metadata applied to the MachinePool. +/// At runtime this metadata is merged with the corresponding metadata from the topology. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassWorkersMachinePoolsTemplateMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } @@ -823,21 +1239,30 @@ pub struct ClusterClassStatus { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } @@ -857,9 +1282,14 @@ pub struct ClusterClassStatusVariables { /// ClusterClassStatusVariableDefinition defines a variable which appears in the status of a ClusterClass. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassStatusVariablesDefinitions { - /// From specifies the origin of the variable definition. This will be `inline` for variables defined in the ClusterClass or the name of a patch defined in the ClusterClass for variables discovered from a DiscoverVariables runtime extensions. + /// From specifies the origin of the variable definition. + /// This will be `inline` for variables defined in the ClusterClass or the name of a patch defined in the ClusterClass + /// for variables discovered from a DiscoverVariables runtime extensions. pub from: String, - /// Required specifies if the variable is required. Note: this applies to the variable as a whole and thus the top-level object defined in the schema. If nested fields are required, this will be specified inside the schema. + /// Required specifies if the variable is required. + /// Note: this applies to the variable as a whole and thus the + /// top-level object defined in the schema. If nested fields are + /// required, this will be specified inside the schema. pub required: bool, /// Schema defines the schema of the variable. pub schema: ClusterClassStatusVariablesDefinitionsSchema, @@ -868,75 +1298,113 @@ pub struct ClusterClassStatusVariablesDefinitions { /// Schema defines the schema of the variable. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassStatusVariablesDefinitionsSchema { - /// OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 schema. The schema is a subset of the schema used in Kubernetes CRDs. + /// OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 + /// schema. The schema is a subset of the schema used in + /// Kubernetes CRDs. #[serde(rename = "openAPIV3Schema")] pub open_apiv3_schema: ClusterClassStatusVariablesDefinitionsSchemaOpenApiv3Schema, } -/// OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 schema. The schema is a subset of the schema used in Kubernetes CRDs. +/// OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 +/// schema. The schema is a subset of the schema used in +/// Kubernetes CRDs. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClassStatusVariablesDefinitionsSchemaOpenApiv3Schema { - /// AdditionalProperties specifies the schema of values in a map (keys are always strings). NOTE: Can only be set if type is object. NOTE: AdditionalProperties is mutually exclusive with Properties. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible. + /// AdditionalProperties specifies the schema of values in a map (keys are always strings). + /// NOTE: Can only be set if type is object. + /// NOTE: AdditionalProperties is mutually exclusive with Properties. + /// NOTE: This field uses PreserveUnknownFields and Schemaless, + /// because recursive validation is not possible. #[serde(default, skip_serializing_if = "Option::is_none", rename = "additionalProperties")] pub additional_properties: Option>, - /// Default is the default value of the variable. NOTE: Can be set for all types. + /// Default is the default value of the variable. + /// NOTE: Can be set for all types. #[serde(default, skip_serializing_if = "Option::is_none")] pub default: Option>, /// Description is a human-readable description of this variable. #[serde(default, skip_serializing_if = "Option::is_none")] pub description: Option, - /// Enum is the list of valid values of the variable. NOTE: Can be set for all types. + /// Enum is the list of valid values of the variable. + /// NOTE: Can be set for all types. #[serde(default, skip_serializing_if = "Option::is_none", rename = "enum")] pub r#enum: Option>>, /// Example is an example for this variable. #[serde(default, skip_serializing_if = "Option::is_none")] pub example: Option>, - /// ExclusiveMaximum specifies if the Maximum is exclusive. NOTE: Can only be set if type is integer or number. + /// ExclusiveMaximum specifies if the Maximum is exclusive. + /// NOTE: Can only be set if type is integer or number. #[serde(default, skip_serializing_if = "Option::is_none", rename = "exclusiveMaximum")] pub exclusive_maximum: Option, - /// ExclusiveMinimum specifies if the Minimum is exclusive. NOTE: Can only be set if type is integer or number. + /// ExclusiveMinimum specifies if the Minimum is exclusive. + /// NOTE: Can only be set if type is integer or number. #[serde(default, skip_serializing_if = "Option::is_none", rename = "exclusiveMinimum")] pub exclusive_minimum: Option, - /// Format is an OpenAPI v3 format string. Unknown formats are ignored. For a list of supported formats please see: (of the k8s.io/apiextensions-apiserver version we're currently using) https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apiserver/validation/formats.go NOTE: Can only be set if type is string. + /// Format is an OpenAPI v3 format string. Unknown formats are ignored. + /// For a list of supported formats please see: (of the k8s.io/apiextensions-apiserver version we're currently using) + /// https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apiserver/validation/formats.go + /// NOTE: Can only be set if type is string. #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, - /// Items specifies fields of an array. NOTE: Can only be set if type is array. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible. + /// Items specifies fields of an array. + /// NOTE: Can only be set if type is array. + /// NOTE: This field uses PreserveUnknownFields and Schemaless, + /// because recursive validation is not possible. #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, - /// MaxItems is the max length of an array variable. NOTE: Can only be set if type is array. + /// MaxItems is the max length of an array variable. + /// NOTE: Can only be set if type is array. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxItems")] pub max_items: Option, - /// MaxLength is the max length of a string variable. NOTE: Can only be set if type is string. + /// MaxLength is the max length of a string variable. + /// NOTE: Can only be set if type is string. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxLength")] pub max_length: Option, - /// Maximum is the maximum of an integer or number variable. If ExclusiveMaximum is false, the variable is valid if it is lower than, or equal to, the value of Maximum. If ExclusiveMaximum is true, the variable is valid if it is strictly lower than the value of Maximum. NOTE: Can only be set if type is integer or number. + /// Maximum is the maximum of an integer or number variable. + /// If ExclusiveMaximum is false, the variable is valid if it is lower than, or equal to, the value of Maximum. + /// If ExclusiveMaximum is true, the variable is valid if it is strictly lower than the value of Maximum. + /// NOTE: Can only be set if type is integer or number. #[serde(default, skip_serializing_if = "Option::is_none")] pub maximum: Option, - /// MinItems is the min length of an array variable. NOTE: Can only be set if type is array. + /// MinItems is the min length of an array variable. + /// NOTE: Can only be set if type is array. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minItems")] pub min_items: Option, - /// MinLength is the min length of a string variable. NOTE: Can only be set if type is string. + /// MinLength is the min length of a string variable. + /// NOTE: Can only be set if type is string. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minLength")] pub min_length: Option, - /// Minimum is the minimum of an integer or number variable. If ExclusiveMinimum is false, the variable is valid if it is greater than, or equal to, the value of Minimum. If ExclusiveMinimum is true, the variable is valid if it is strictly greater than the value of Minimum. NOTE: Can only be set if type is integer or number. + /// Minimum is the minimum of an integer or number variable. + /// If ExclusiveMinimum is false, the variable is valid if it is greater than, or equal to, the value of Minimum. + /// If ExclusiveMinimum is true, the variable is valid if it is strictly greater than the value of Minimum. + /// NOTE: Can only be set if type is integer or number. #[serde(default, skip_serializing_if = "Option::is_none")] pub minimum: Option, - /// Pattern is the regex which a string variable must match. NOTE: Can only be set if type is string. + /// Pattern is the regex which a string variable must match. + /// NOTE: Can only be set if type is string. #[serde(default, skip_serializing_if = "Option::is_none")] pub pattern: Option, - /// Properties specifies fields of an object. NOTE: Can only be set if type is object. NOTE: Properties is mutually exclusive with AdditionalProperties. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible. + /// Properties specifies fields of an object. + /// NOTE: Can only be set if type is object. + /// NOTE: Properties is mutually exclusive with AdditionalProperties. + /// NOTE: This field uses PreserveUnknownFields and Schemaless, + /// because recursive validation is not possible. #[serde(default, skip_serializing_if = "Option::is_none")] pub properties: Option>, - /// Required specifies which fields of an object are required. NOTE: Can only be set if type is object. + /// Required specifies which fields of an object are required. + /// NOTE: Can only be set if type is object. #[serde(default, skip_serializing_if = "Option::is_none")] pub required: Option>, - /// Type is the type of the variable. Valid values are: object, array, string, integer, number or boolean. + /// Type is the type of the variable. + /// Valid values are: object, array, string, integer, number or boolean. #[serde(rename = "type")] pub r#type: String, - /// UniqueItems specifies if items in an array must be unique. NOTE: Can only be set if type is array. + /// UniqueItems specifies if items in an array must be unique. + /// NOTE: Can only be set if type is array. #[serde(default, skip_serializing_if = "Option::is_none", rename = "uniqueItems")] pub unique_items: Option, - /// XPreserveUnknownFields allows setting fields in a variable object which are not defined in the variable schema. This affects fields recursively, except if nested properties or additionalProperties are specified in the schema. + /// XPreserveUnknownFields allows setting fields in a variable object + /// which are not defined in the variable schema. This affects fields recursively, + /// except if nested properties or additionalProperties are specified in the schema. #[serde(default, skip_serializing_if = "Option::is_none", rename = "x-kubernetes-preserve-unknown-fields")] pub x_kubernetes_preserve_unknown_fields: Option, } diff --git a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/clusters.rs b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/clusters.rs index e4a5f4583..be5b68e46 100644 --- a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/clusters.rs +++ b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/clusters.rs @@ -21,16 +21,21 @@ pub struct ClusterSpec { /// ControlPlaneEndpoint represents the endpoint used to communicate with the control plane. #[serde(default, skip_serializing_if = "Option::is_none", rename = "controlPlaneEndpoint")] pub control_plane_endpoint: Option, - /// ControlPlaneRef is an optional reference to a provider-specific resource that holds the details for provisioning the Control Plane for a Cluster. + /// ControlPlaneRef is an optional reference to a provider-specific resource that holds + /// the details for provisioning the Control Plane for a Cluster. #[serde(default, skip_serializing_if = "Option::is_none", rename = "controlPlaneRef")] pub control_plane_ref: Option, - /// InfrastructureRef is a reference to a provider-specific resource that holds the details for provisioning infrastructure for a cluster in said provider. + /// InfrastructureRef is a reference to a provider-specific resource that holds the details + /// for provisioning infrastructure for a cluster in said provider. #[serde(default, skip_serializing_if = "Option::is_none", rename = "infrastructureRef")] pub infrastructure_ref: Option, /// Paused can be used to prevent controllers from processing the Cluster and all its associated objects. #[serde(default, skip_serializing_if = "Option::is_none")] pub paused: Option, - /// This encapsulates the topology for the cluster. NOTE: It is required to enable the ClusterTopology feature gate flag to activate managed topologies support; this feature is highly experimental, and parts of it might still be not implemented. + /// This encapsulates the topology for the cluster. + /// NOTE: It is required to enable the ClusterTopology + /// feature gate flag to activate managed topologies support; + /// this feature is highly experimental, and parts of it might still be not implemented. #[serde(default, skip_serializing_if = "Option::is_none")] pub topology: Option, } @@ -38,7 +43,8 @@ pub struct ClusterSpec { /// Cluster network configuration. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterClusterNetwork { - /// APIServerPort specifies the port the API Server should bind to. Defaults to 6443. + /// APIServerPort specifies the port the API Server should bind to. + /// Defaults to 6443. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiServerPort")] pub api_server_port: Option, /// The network ranges from which Pod networks are allocated. @@ -75,59 +81,88 @@ pub struct ClusterControlPlaneEndpoint { pub port: i32, } -/// ControlPlaneRef is an optional reference to a provider-specific resource that holds the details for provisioning the Control Plane for a Cluster. +/// ControlPlaneRef is an optional reference to a provider-specific resource that holds +/// the details for provisioning the Control Plane for a Cluster. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterControlPlaneRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// InfrastructureRef is a reference to a provider-specific resource that holds the details for provisioning infrastructure for a cluster in said provider. +/// InfrastructureRef is a reference to a provider-specific resource that holds the details +/// for provisioning infrastructure for a cluster in said provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// This encapsulates the topology for the cluster. NOTE: It is required to enable the ClusterTopology feature gate flag to activate managed topologies support; this feature is highly experimental, and parts of it might still be not implemented. +/// This encapsulates the topology for the cluster. +/// NOTE: It is required to enable the ClusterTopology +/// feature gate flag to activate managed topologies support; +/// this feature is highly experimental, and parts of it might still be not implemented. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopology { /// The name of the ClusterClass object to create the topology. @@ -135,16 +170,22 @@ pub struct ClusterTopology { /// ControlPlane describes the cluster control plane. #[serde(default, skip_serializing_if = "Option::is_none", rename = "controlPlane")] pub control_plane: Option, - /// RolloutAfter performs a rollout of the entire cluster one component at a time, control plane first and then machine deployments. - /// Deprecated: This field has no function and is going to be removed in the next apiVersion. + /// RolloutAfter performs a rollout of the entire cluster one component at a time, + /// control plane first and then machine deployments. + /// + /// + /// Deprecated: This field has no function and is going to be removed in the next apiVersion. #[serde(default, skip_serializing_if = "Option::is_none", rename = "rolloutAfter")] pub rollout_after: Option, - /// Variables can be used to customize the Cluster through patches. They must comply to the corresponding VariableClasses defined in the ClusterClass. + /// Variables can be used to customize the Cluster through + /// patches. They must comply to the corresponding + /// VariableClasses defined in the ClusterClass. #[serde(default, skip_serializing_if = "Option::is_none")] pub variables: Option>, /// The Kubernetes version of the cluster. pub version: String, - /// Workers encapsulates the different constructs that form the worker nodes for the cluster. + /// Workers encapsulates the different constructs that form the worker nodes + /// for the cluster. #[serde(default, skip_serializing_if = "Option::is_none")] pub workers: Option, } @@ -152,81 +193,135 @@ pub struct ClusterTopology { /// ControlPlane describes the cluster control plane. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyControlPlane { - /// MachineHealthCheck allows to enable, disable and override the MachineHealthCheck configuration in the ClusterClass for this control plane. + /// MachineHealthCheck allows to enable, disable and override + /// the MachineHealthCheck configuration in the ClusterClass for this control plane. #[serde(default, skip_serializing_if = "Option::is_none", rename = "machineHealthCheck")] pub machine_health_check: Option, - /// Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane if the ControlPlaneTemplate referenced by the ClusterClass is machine based. If not, it is applied only to the ControlPlane. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. + /// Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane + /// if the ControlPlaneTemplate referenced by the ClusterClass is machine based. If not, it + /// is applied only to the ControlPlane. + /// At runtime this metadata is merged with the corresponding metadata from the ClusterClass. #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, - /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. + /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + /// hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + /// Defaults to 10 seconds. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDeletionTimeout")] pub node_deletion_timeout: Option, - /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + /// The default value is 0, meaning that the node can be drained without any time limitations. + /// NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDrainTimeout")] pub node_drain_timeout: Option, - /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + /// to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeVolumeDetachTimeout")] pub node_volume_detach_timeout: Option, - /// Replicas is the number of control plane nodes. If the value is nil, the ControlPlane object is created without the number of Replicas and it's assumed that the control plane controller does not implement support for this field. When specified against a control plane provider that lacks support for this field, this value will be ignored. + /// Replicas is the number of control plane nodes. + /// If the value is nil, the ControlPlane object is created without the number of Replicas + /// and it's assumed that the control plane controller does not implement support for this field. + /// When specified against a control plane provider that lacks support for this field, this value will be ignored. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, } -/// MachineHealthCheck allows to enable, disable and override the MachineHealthCheck configuration in the ClusterClass for this control plane. +/// MachineHealthCheck allows to enable, disable and override +/// the MachineHealthCheck configuration in the ClusterClass for this control plane. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyControlPlaneMachineHealthCheck { - /// Enable controls if a MachineHealthCheck should be created for the target machines. - /// If false: No MachineHealthCheck will be created. - /// If not set(default): A MachineHealthCheck will be created if it is defined here or in the associated ClusterClass. If no MachineHealthCheck is defined then none will be created. - /// If true: A MachineHealthCheck is guaranteed to be created. Cluster validation will block if `enable` is true and no MachineHealthCheck definition is available. + /// Enable controls if a MachineHealthCheck should be created for the target machines. + /// + /// + /// If false: No MachineHealthCheck will be created. + /// + /// + /// If not set(default): A MachineHealthCheck will be created if it is defined here or + /// in the associated ClusterClass. If no MachineHealthCheck is defined then none will be created. + /// + /// + /// If true: A MachineHealthCheck is guaranteed to be created. Cluster validation will + /// block if `enable` is true and no MachineHealthCheck definition is available. #[serde(default, skip_serializing_if = "Option::is_none")] pub enable: Option, - /// Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by "selector" are not healthy. + /// Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by + /// "selector" are not healthy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnhealthy")] pub max_unhealthy: Option, - /// Machines older than this duration without a node will be considered to have failed and will be remediated. If you wish to disable this feature, set the value explicitly to 0. + /// Machines older than this duration without a node will be considered to have + /// failed and will be remediated. + /// If you wish to disable this feature, set the value explicitly to 0. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeStartupTimeout")] pub node_startup_timeout: Option, - /// RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. - /// This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. + /// RemediationTemplate is a reference to a remediation template + /// provided by an infrastructure provider. + /// + /// + /// This field is completely optional, when filled, the MachineHealthCheck controller + /// creates a new object from the template referenced and hands off remediation of the machine to + /// a controller that lives outside of Cluster API. #[serde(default, skip_serializing_if = "Option::is_none", rename = "remediationTemplate")] pub remediation_template: Option, - /// UnhealthyConditions contains a list of the conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. + /// UnhealthyConditions contains a list of the conditions that determine + /// whether a node is considered unhealthy. The conditions are combined in a + /// logical OR, i.e. if any of the conditions is met, the node is unhealthy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "unhealthyConditions")] pub unhealthy_conditions: Option>, - /// Any further remediation is only allowed if the number of machines selected by "selector" as not healthy is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. Eg. "[3-5]" - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy machines (and) (b) there are at most 5 unhealthy machines + /// Any further remediation is only allowed if the number of machines selected by "selector" as not healthy + /// is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. + /// Eg. "[3-5]" - This means that remediation will be allowed only when: + /// (a) there are at least 3 unhealthy machines (and) + /// (b) there are at most 5 unhealthy machines #[serde(default, skip_serializing_if = "Option::is_none", rename = "unhealthyRange")] pub unhealthy_range: Option, } -/// RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. -/// This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. +/// RemediationTemplate is a reference to a remediation template +/// provided by an infrastructure provider. +/// +/// +/// This field is completely optional, when filled, the MachineHealthCheck controller +/// creates a new object from the template referenced and hands off remediation of the machine to +/// a controller that lives outside of Cluster API. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyControlPlaneMachineHealthCheckRemediationTemplate { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// UnhealthyCondition represents a Node condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a node is considered unhealthy. +/// UnhealthyCondition represents a Node condition type and value with a timeout +/// specified as a duration. When the named condition has been in the given +/// status for at least the timeout value, a node is considered unhealthy. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyControlPlaneMachineHealthCheckUnhealthyConditions { pub status: String, @@ -235,30 +330,50 @@ pub struct ClusterTopologyControlPlaneMachineHealthCheckUnhealthyConditions { pub r#type: String, } -/// Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane if the ControlPlaneTemplate referenced by the ClusterClass is machine based. If not, it is applied only to the ControlPlane. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. +/// Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane +/// if the ControlPlaneTemplate referenced by the ClusterClass is machine based. If not, it +/// is applied only to the ControlPlane. +/// At runtime this metadata is merged with the corresponding metadata from the ClusterClass. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyControlPlaneMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } -/// ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a Variable definition in the ClusterClass `status` variables. +/// ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a +/// Variable definition in the ClusterClass `status` variables. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyVariables { - /// DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass `.spec.patches` where the patch is external and provides external variables. This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]` + /// DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the + /// definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass + /// `.spec.patches` where the patch is external and provides external variables. + /// This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]` #[serde(default, skip_serializing_if = "Option::is_none", rename = "definitionFrom")] pub definition_from: Option, /// Name of the variable. pub name: String, - /// Value of the variable. Note: the value will be validated against the schema of the corresponding ClusterClassVariable from the ClusterClass. Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools, i.e. it is not possible to have no type field. Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111 + /// Value of the variable. + /// Note: the value will be validated against the schema of the corresponding ClusterClassVariable + /// from the ClusterClass. + /// Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a + /// hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools, + /// i.e. it is not possible to have no type field. + /// Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111 pub value: HashMap, } -/// Workers encapsulates the different constructs that form the worker nodes for the cluster. +/// Workers encapsulates the different constructs that form the worker nodes +/// for the cluster. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkers { /// MachineDeployments is a list of machine deployments in the cluster. @@ -269,38 +384,59 @@ pub struct ClusterTopologyWorkers { pub machine_pools: Option>, } -/// MachineDeploymentTopology specifies the different parameters for a set of worker nodes in the topology. This set of nodes is managed by a MachineDeployment object whose lifecycle is managed by the Cluster controller. +/// MachineDeploymentTopology specifies the different parameters for a set of worker nodes in the topology. +/// This set of nodes is managed by a MachineDeployment object whose lifecycle is managed by the Cluster controller. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkersMachineDeployments { - /// Class is the name of the MachineDeploymentClass used to create the set of worker nodes. This should match one of the deployment classes defined in the ClusterClass object mentioned in the `Cluster.Spec.Class` field. + /// Class is the name of the MachineDeploymentClass used to create the set of worker nodes. + /// This should match one of the deployment classes defined in the ClusterClass object + /// mentioned in the `Cluster.Spec.Class` field. pub class: String, - /// FailureDomain is the failure domain the machines will be created in. Must match a key in the FailureDomains map stored on the cluster object. + /// FailureDomain is the failure domain the machines will be created in. + /// Must match a key in the FailureDomains map stored on the cluster object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomain")] pub failure_domain: Option, - /// MachineHealthCheck allows to enable, disable and override the MachineHealthCheck configuration in the ClusterClass for this MachineDeployment. + /// MachineHealthCheck allows to enable, disable and override + /// the MachineHealthCheck configuration in the ClusterClass for this MachineDeployment. #[serde(default, skip_serializing_if = "Option::is_none", rename = "machineHealthCheck")] pub machine_health_check: Option, - /// Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. + /// Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment. + /// At runtime this metadata is merged with the corresponding metadata from the ClusterClass. #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, - /// Minimum number of seconds for which a newly created machine should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) + /// Minimum number of seconds for which a newly created machine should + /// be ready. + /// Defaults to 0 (machine will be considered available as soon as it + /// is ready) #[serde(default, skip_serializing_if = "Option::is_none", rename = "minReadySeconds")] pub min_ready_seconds: Option, - /// Name is the unique identifier for this MachineDeploymentTopology. The value is used with other unique identifiers to create a MachineDeployment's Name (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length, the values are hashed together. + /// Name is the unique identifier for this MachineDeploymentTopology. + /// The value is used with other unique identifiers to create a MachineDeployment's Name + /// (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length, + /// the values are hashed together. pub name: String, - /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. + /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + /// hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + /// Defaults to 10 seconds. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDeletionTimeout")] pub node_deletion_timeout: Option, - /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + /// The default value is 0, meaning that the node can be drained without any time limitations. + /// NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDrainTimeout")] pub node_drain_timeout: Option, - /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + /// to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeVolumeDetachTimeout")] pub node_volume_detach_timeout: Option, - /// Replicas is the number of worker nodes belonging to this set. If the value is nil, the MachineDeployment is created without the number of Replicas (defaulting to 1) and it's assumed that an external entity (like cluster autoscaler) is responsible for the management of this value. + /// Replicas is the number of worker nodes belonging to this set. + /// If the value is nil, the MachineDeployment is created without the number of Replicas (defaulting to 1) + /// and it's assumed that an external entity (like cluster autoscaler) is responsible for the management + /// of this value. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// The deployment strategy to use to replace existing machines with new ones. + /// The deployment strategy to use to replace existing machines with + /// new ones. #[serde(default, skip_serializing_if = "Option::is_none")] pub strategy: Option, /// Variables can be used to customize the MachineDeployment through patches. @@ -308,61 +444,103 @@ pub struct ClusterTopologyWorkersMachineDeployments { pub variables: Option, } -/// MachineHealthCheck allows to enable, disable and override the MachineHealthCheck configuration in the ClusterClass for this MachineDeployment. +/// MachineHealthCheck allows to enable, disable and override +/// the MachineHealthCheck configuration in the ClusterClass for this MachineDeployment. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkersMachineDeploymentsMachineHealthCheck { - /// Enable controls if a MachineHealthCheck should be created for the target machines. - /// If false: No MachineHealthCheck will be created. - /// If not set(default): A MachineHealthCheck will be created if it is defined here or in the associated ClusterClass. If no MachineHealthCheck is defined then none will be created. - /// If true: A MachineHealthCheck is guaranteed to be created. Cluster validation will block if `enable` is true and no MachineHealthCheck definition is available. + /// Enable controls if a MachineHealthCheck should be created for the target machines. + /// + /// + /// If false: No MachineHealthCheck will be created. + /// + /// + /// If not set(default): A MachineHealthCheck will be created if it is defined here or + /// in the associated ClusterClass. If no MachineHealthCheck is defined then none will be created. + /// + /// + /// If true: A MachineHealthCheck is guaranteed to be created. Cluster validation will + /// block if `enable` is true and no MachineHealthCheck definition is available. #[serde(default, skip_serializing_if = "Option::is_none")] pub enable: Option, - /// Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by "selector" are not healthy. + /// Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by + /// "selector" are not healthy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnhealthy")] pub max_unhealthy: Option, - /// Machines older than this duration without a node will be considered to have failed and will be remediated. If you wish to disable this feature, set the value explicitly to 0. + /// Machines older than this duration without a node will be considered to have + /// failed and will be remediated. + /// If you wish to disable this feature, set the value explicitly to 0. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeStartupTimeout")] pub node_startup_timeout: Option, - /// RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. - /// This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. + /// RemediationTemplate is a reference to a remediation template + /// provided by an infrastructure provider. + /// + /// + /// This field is completely optional, when filled, the MachineHealthCheck controller + /// creates a new object from the template referenced and hands off remediation of the machine to + /// a controller that lives outside of Cluster API. #[serde(default, skip_serializing_if = "Option::is_none", rename = "remediationTemplate")] pub remediation_template: Option, - /// UnhealthyConditions contains a list of the conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. + /// UnhealthyConditions contains a list of the conditions that determine + /// whether a node is considered unhealthy. The conditions are combined in a + /// logical OR, i.e. if any of the conditions is met, the node is unhealthy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "unhealthyConditions")] pub unhealthy_conditions: Option>, - /// Any further remediation is only allowed if the number of machines selected by "selector" as not healthy is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. Eg. "[3-5]" - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy machines (and) (b) there are at most 5 unhealthy machines + /// Any further remediation is only allowed if the number of machines selected by "selector" as not healthy + /// is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. + /// Eg. "[3-5]" - This means that remediation will be allowed only when: + /// (a) there are at least 3 unhealthy machines (and) + /// (b) there are at most 5 unhealthy machines #[serde(default, skip_serializing_if = "Option::is_none", rename = "unhealthyRange")] pub unhealthy_range: Option, } -/// RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. -/// This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. +/// RemediationTemplate is a reference to a remediation template +/// provided by an infrastructure provider. +/// +/// +/// This field is completely optional, when filled, the MachineHealthCheck controller +/// creates a new object from the template referenced and hands off remediation of the machine to +/// a controller that lives outside of Cluster API. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkersMachineDeploymentsMachineHealthCheckRemediationTemplate { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// UnhealthyCondition represents a Node condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a node is considered unhealthy. +/// UnhealthyCondition represents a Node condition type and value with a timeout +/// specified as a duration. When the named condition has been in the given +/// status for at least the timeout value, a node is considered unhealthy. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkersMachineDeploymentsMachineHealthCheckUnhealthyConditions { pub status: String, @@ -371,43 +549,80 @@ pub struct ClusterTopologyWorkersMachineDeploymentsMachineHealthCheckUnhealthyCo pub r#type: String, } -/// Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. +/// Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment. +/// At runtime this metadata is merged with the corresponding metadata from the ClusterClass. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkersMachineDeploymentsMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } -/// The deployment strategy to use to replace existing machines with new ones. +/// The deployment strategy to use to replace existing machines with +/// new ones. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkersMachineDeploymentsStrategy { - /// Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. + /// Rolling update config params. Present only if + /// MachineDeploymentStrategyType = RollingUpdate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "rollingUpdate")] pub rolling_update: Option, - /// Type of deployment. Allowed values are RollingUpdate and OnDelete. The default is RollingUpdate. + /// Type of deployment. Allowed values are RollingUpdate and OnDelete. + /// The default is RollingUpdate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. +/// Rolling update config params. Present only if +/// MachineDeploymentStrategyType = RollingUpdate. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkersMachineDeploymentsStrategyRollingUpdate { - /// DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. Valid values are "Random, "Newest", "Oldest" When no value is supplied, the default DeletePolicy of MachineSet is used + /// DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. + /// Valid values are "Random, "Newest", "Oldest" + /// When no value is supplied, the default DeletePolicy of MachineSet is used #[serde(default, skip_serializing_if = "Option::is_none", rename = "deletePolicy")] pub delete_policy: Option, - /// The maximum number of machines that can be scheduled above the desired number of machines. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 1. Example: when this is set to 30%, the new MachineSet can be scaled up immediately when the rolling update starts, such that the total number of old and new machines do not exceed 130% of desired machines. Once old machines have been killed, new MachineSet can be scaled up further, ensuring that total number of machines running at any time during the update is at most 130% of desired machines. + /// The maximum number of machines that can be scheduled above the + /// desired number of machines. + /// Value can be an absolute number (ex: 5) or a percentage of + /// desired machines (ex: 10%). + /// This can not be 0 if MaxUnavailable is 0. + /// Absolute number is calculated from percentage by rounding up. + /// Defaults to 1. + /// Example: when this is set to 30%, the new MachineSet can be scaled + /// up immediately when the rolling update starts, such that the total + /// number of old and new machines do not exceed 130% of desired + /// machines. Once old machines have been killed, new MachineSet can + /// be scaled up further, ensuring that total number of machines running + /// at any time during the update is at most 130% of desired machines. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxSurge")] pub max_surge: Option, - /// The maximum number of machines that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 0. Example: when this is set to 30%, the old MachineSet can be scaled down to 70% of desired machines immediately when the rolling update starts. Once new machines are ready, old MachineSet can be scaled down further, followed by scaling up the new MachineSet, ensuring that the total number of machines available at all times during the update is at least 70% of desired machines. + /// The maximum number of machines that can be unavailable during the update. + /// Value can be an absolute number (ex: 5) or a percentage of desired + /// machines (ex: 10%). + /// Absolute number is calculated from percentage by rounding down. + /// This can not be 0 if MaxSurge is 0. + /// Defaults to 0. + /// Example: when this is set to 30%, the old MachineSet can be scaled + /// down to 70% of desired machines immediately when the rolling update + /// starts. Once new machines are ready, old MachineSet can be scaled + /// down further, followed by scaling up the new MachineSet, ensuring + /// that the total number of machines available at all times + /// during the update is at least 70% of desired machines. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")] pub max_unavailable: Option, } -/// Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. +/// Rolling update config params. Present only if +/// MachineDeploymentStrategyType = RollingUpdate. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum ClusterTopologyWorkersMachineDeploymentsStrategyRollingUpdateDeletePolicy { Random, @@ -415,7 +630,8 @@ pub enum ClusterTopologyWorkersMachineDeploymentsStrategyRollingUpdateDeletePoli Oldest, } -/// The deployment strategy to use to replace existing machines with new ones. +/// The deployment strategy to use to replace existing machines with +/// new ones. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum ClusterTopologyWorkersMachineDeploymentsStrategyType { RollingUpdate, @@ -430,44 +646,73 @@ pub struct ClusterTopologyWorkersMachineDeploymentsVariables { pub overrides: Option>, } -/// ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a Variable definition in the ClusterClass `status` variables. +/// ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a +/// Variable definition in the ClusterClass `status` variables. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkersMachineDeploymentsVariablesOverrides { - /// DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass `.spec.patches` where the patch is external and provides external variables. This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]` + /// DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the + /// definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass + /// `.spec.patches` where the patch is external and provides external variables. + /// This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]` #[serde(default, skip_serializing_if = "Option::is_none", rename = "definitionFrom")] pub definition_from: Option, /// Name of the variable. pub name: String, - /// Value of the variable. Note: the value will be validated against the schema of the corresponding ClusterClassVariable from the ClusterClass. Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools, i.e. it is not possible to have no type field. Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111 + /// Value of the variable. + /// Note: the value will be validated against the schema of the corresponding ClusterClassVariable + /// from the ClusterClass. + /// Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a + /// hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools, + /// i.e. it is not possible to have no type field. + /// Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111 pub value: HashMap, } -/// MachinePoolTopology specifies the different parameters for a pool of worker nodes in the topology. This pool of nodes is managed by a MachinePool object whose lifecycle is managed by the Cluster controller. +/// MachinePoolTopology specifies the different parameters for a pool of worker nodes in the topology. +/// This pool of nodes is managed by a MachinePool object whose lifecycle is managed by the Cluster controller. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkersMachinePools { - /// Class is the name of the MachinePoolClass used to create the pool of worker nodes. This should match one of the deployment classes defined in the ClusterClass object mentioned in the `Cluster.Spec.Class` field. + /// Class is the name of the MachinePoolClass used to create the pool of worker nodes. + /// This should match one of the deployment classes defined in the ClusterClass object + /// mentioned in the `Cluster.Spec.Class` field. pub class: String, - /// FailureDomains is the list of failure domains the machine pool will be created in. Must match a key in the FailureDomains map stored on the cluster object. + /// FailureDomains is the list of failure domains the machine pool will be created in. + /// Must match a key in the FailureDomains map stored on the cluster object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomains")] pub failure_domains: Option>, - /// Metadata is the metadata applied to the MachinePool. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. + /// Metadata is the metadata applied to the MachinePool. + /// At runtime this metadata is merged with the corresponding metadata from the ClusterClass. #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, - /// Minimum number of seconds for which a newly created machine pool should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) + /// Minimum number of seconds for which a newly created machine pool should + /// be ready. + /// Defaults to 0 (machine will be considered available as soon as it + /// is ready) #[serde(default, skip_serializing_if = "Option::is_none", rename = "minReadySeconds")] pub min_ready_seconds: Option, - /// Name is the unique identifier for this MachinePoolTopology. The value is used with other unique identifiers to create a MachinePool's Name (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length, the values are hashed together. + /// Name is the unique identifier for this MachinePoolTopology. + /// The value is used with other unique identifiers to create a MachinePool's Name + /// (e.g. cluster's name, etc). In case the name is greater than the allowed maximum length, + /// the values are hashed together. pub name: String, - /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the MachinePool hosts after the MachinePool is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. + /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the MachinePool + /// hosts after the MachinePool is marked for deletion. A duration of 0 will retry deletion indefinitely. + /// Defaults to 10 seconds. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDeletionTimeout")] pub node_deletion_timeout: Option, - /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + /// The default value is 0, meaning that the node can be drained without any time limitations. + /// NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDrainTimeout")] pub node_drain_timeout: Option, - /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + /// to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeVolumeDetachTimeout")] pub node_volume_detach_timeout: Option, - /// Replicas is the number of nodes belonging to this pool. If the value is nil, the MachinePool is created without the number of Replicas (defaulting to 1) and it's assumed that an external entity (like cluster autoscaler) is responsible for the management of this value. + /// Replicas is the number of nodes belonging to this pool. + /// If the value is nil, the MachinePool is created without the number of Replicas (defaulting to 1) + /// and it's assumed that an external entity (like cluster autoscaler) is responsible for the management + /// of this value. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, /// Variables can be used to customize the MachinePool through patches. @@ -475,13 +720,20 @@ pub struct ClusterTopologyWorkersMachinePools { pub variables: Option, } -/// Metadata is the metadata applied to the MachinePool. At runtime this metadata is merged with the corresponding metadata from the ClusterClass. +/// Metadata is the metadata applied to the MachinePool. +/// At runtime this metadata is merged with the corresponding metadata from the ClusterClass. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkersMachinePoolsMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } @@ -494,15 +746,25 @@ pub struct ClusterTopologyWorkersMachinePoolsVariables { pub overrides: Option>, } -/// ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a Variable definition in the ClusterClass `status` variables. +/// ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a +/// Variable definition in the ClusterClass `status` variables. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTopologyWorkersMachinePoolsVariablesOverrides { - /// DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass `.spec.patches` where the patch is external and provides external variables. This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]` + /// DefinitionFrom specifies where the definition of this Variable is from. DefinitionFrom is `inline` when the + /// definition is from the ClusterClass `.spec.variables` or the name of a patch defined in the ClusterClass + /// `.spec.patches` where the patch is external and provides external variables. + /// This field is mandatory if the variable has `DefinitionsConflict: true` in ClusterClass `status.variables[]` #[serde(default, skip_serializing_if = "Option::is_none", rename = "definitionFrom")] pub definition_from: Option, /// Name of the variable. pub name: String, - /// Value of the variable. Note: the value will be validated against the schema of the corresponding ClusterClassVariable from the ClusterClass. Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools, i.e. it is not possible to have no type field. Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111 + /// Value of the variable. + /// Note: the value will be validated against the schema of the corresponding ClusterClassVariable + /// from the ClusterClass. + /// Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a + /// hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools, + /// i.e. it is not possible to have no type field. + /// Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111 pub value: HashMap, } @@ -518,10 +780,13 @@ pub struct ClusterStatus { /// FailureDomains is a slice of failure domain objects synced from the infrastructure provider. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomains")] pub failure_domains: Option>, - /// FailureMessage indicates that there is a fatal problem reconciling the state, and will be set to a descriptive error message. + /// FailureMessage indicates that there is a fatal problem reconciling the + /// state, and will be set to a descriptive error message. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureMessage")] pub failure_message: Option, - /// FailureReason indicates that there is a fatal problem reconciling the state, and will be set to a token value suitable for programmatic interpretation. + /// FailureReason indicates that there is a fatal problem reconciling the + /// state, and will be set to a token value suitable for + /// programmatic interpretation. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureReason")] pub failure_reason: Option, /// InfrastructureReady is the state of the infrastructure provider. @@ -530,7 +795,8 @@ pub struct ClusterStatus { /// ObservedGeneration is the latest generation observed by the controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// Phase represents the current phase of cluster actuation. E.g. Pending, Running, Terminating, Failed etc. + /// Phase represents the current phase of cluster actuation. + /// E.g. Pending, Running, Terminating, Failed etc. #[serde(default, skip_serializing_if = "Option::is_none")] pub phase: Option, } @@ -538,21 +804,30 @@ pub struct ClusterStatus { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } diff --git a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinedeployments.rs b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinedeployments.rs index 723ef118e..478ba94bc 100644 --- a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinedeployments.rs +++ b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinedeployments.rs @@ -17,83 +17,153 @@ pub struct MachineDeploymentSpec { /// ClusterName is the name of the Cluster this object belongs to. #[serde(rename = "clusterName")] pub cluster_name: String, - /// MinReadySeconds is the minimum number of seconds for which a Node for a newly created machine should be ready before considering the replica available. Defaults to 0 (machine will be considered available as soon as the Node is ready) + /// MinReadySeconds is the minimum number of seconds for which a Node for a newly created machine should be ready before considering the replica available. + /// Defaults to 0 (machine will be considered available as soon as the Node is ready) #[serde(default, skip_serializing_if = "Option::is_none", rename = "minReadySeconds")] pub min_ready_seconds: Option, /// Indicates that the deployment is paused. #[serde(default, skip_serializing_if = "Option::is_none")] pub paused: Option, - /// The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s. + /// The maximum time in seconds for a deployment to make progress before it + /// is considered to be failed. The deployment controller will continue to + /// process failed deployments and a condition with a ProgressDeadlineExceeded + /// reason will be surfaced in the deployment status. Note that progress will + /// not be estimated during the time a deployment is paused. Defaults to 600s. #[serde(default, skip_serializing_if = "Option::is_none", rename = "progressDeadlineSeconds")] pub progress_deadline_seconds: Option, - /// Number of desired machines. This is a pointer to distinguish between explicit zero and not specified. - /// Defaults to: * if the Kubernetes autoscaler min size and max size annotations are set: - if it's a new MachineDeployment, use min size - if the replicas field of the old MachineDeployment is < min size, use min size - if the replicas field of the old MachineDeployment is > max size, use max size - if the replicas field of the old MachineDeployment is in the (min size, max size) range, keep the value from the oldMD * otherwise use 1 Note: Defaulting will be run whenever the replicas field is not set: * A new MachineDeployment is created with replicas not set. * On an existing MachineDeployment the replicas field was first set and is now unset. Those cases are especially relevant for the following Kubernetes autoscaler use cases: * A new MachineDeployment is created and replicas should be managed by the autoscaler * An existing MachineDeployment which initially wasn't controlled by the autoscaler should be later controlled by the autoscaler + /// Number of desired machines. + /// This is a pointer to distinguish between explicit zero and not specified. + /// + /// + /// Defaults to: + /// * if the Kubernetes autoscaler min size and max size annotations are set: + /// - if it's a new MachineDeployment, use min size + /// - if the replicas field of the old MachineDeployment is < min size, use min size + /// - if the replicas field of the old MachineDeployment is > max size, use max size + /// - if the replicas field of the old MachineDeployment is in the (min size, max size) range, keep the value from the oldMD + /// * otherwise use 1 + /// Note: Defaulting will be run whenever the replicas field is not set: + /// * A new MachineDeployment is created with replicas not set. + /// * On an existing MachineDeployment the replicas field was first set and is now unset. + /// Those cases are especially relevant for the following Kubernetes autoscaler use cases: + /// * A new MachineDeployment is created and replicas should be managed by the autoscaler + /// * An existing MachineDeployment which initially wasn't controlled by the autoscaler + /// should be later controlled by the autoscaler #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// The number of old MachineSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. + /// The number of old MachineSets to retain to allow rollback. + /// This is a pointer to distinguish between explicit zero and not specified. + /// Defaults to 1. #[serde(default, skip_serializing_if = "Option::is_none", rename = "revisionHistoryLimit")] pub revision_history_limit: Option, - /// RolloutAfter is a field to indicate a rollout should be performed after the specified time even if no changes have been made to the MachineDeployment. Example: In the YAML the time can be specified in the RFC3339 format. To specify the rolloutAfter target as March 9, 2023, at 9 am UTC use "2023-03-09T09:00:00Z". + /// RolloutAfter is a field to indicate a rollout should be performed + /// after the specified time even if no changes have been made to the + /// MachineDeployment. + /// Example: In the YAML the time can be specified in the RFC3339 format. + /// To specify the rolloutAfter target as March 9, 2023, at 9 am UTC + /// use "2023-03-09T09:00:00Z". #[serde(default, skip_serializing_if = "Option::is_none", rename = "rolloutAfter")] pub rollout_after: Option, - /// Label selector for machines. Existing MachineSets whose machines are selected by this will be the ones affected by this deployment. It must match the machine template's labels. + /// Label selector for machines. Existing MachineSets whose machines are + /// selected by this will be the ones affected by this deployment. + /// It must match the machine template's labels. pub selector: MachineDeploymentSelector, - /// The deployment strategy to use to replace existing machines with new ones. + /// The deployment strategy to use to replace existing machines with + /// new ones. #[serde(default, skip_serializing_if = "Option::is_none")] pub strategy: Option, /// Template describes the machines that will be created. pub template: MachineDeploymentTemplate, } -/// Label selector for machines. Existing MachineSets whose machines are selected by this will be the ones affected by this deployment. It must match the machine template's labels. +/// Label selector for machines. Existing MachineSets whose machines are +/// selected by this will be the ones affected by this deployment. +/// It must match the machine template's labels. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] pub match_expressions: Option>, - /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + /// map is equivalent to an element of matchExpressions, whose key field is "key", the + /// operator is "In", and the values array contains only "value". The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] pub match_labels: Option>, } -/// A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +/// A label selector requirement is a selector that contains values, a key, and an operator that +/// relates the key and values. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentSelectorMatchExpressions { /// key is the label key that the selector applies to. pub key: String, - /// operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + /// operator represents a key's relationship to a set of values. + /// Valid operators are In, NotIn, Exists and DoesNotExist. pub operator: String, - /// values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + /// values is an array of string values. If the operator is In or NotIn, + /// the values array must be non-empty. If the operator is Exists or DoesNotExist, + /// the values array must be empty. This array is replaced during a strategic + /// merge patch. #[serde(default, skip_serializing_if = "Option::is_none")] pub values: Option>, } -/// The deployment strategy to use to replace existing machines with new ones. +/// The deployment strategy to use to replace existing machines with +/// new ones. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentStrategy { - /// Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. + /// Rolling update config params. Present only if + /// MachineDeploymentStrategyType = RollingUpdate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "rollingUpdate")] pub rolling_update: Option, - /// Type of deployment. Allowed values are RollingUpdate and OnDelete. The default is RollingUpdate. + /// Type of deployment. Allowed values are RollingUpdate and OnDelete. + /// The default is RollingUpdate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] pub r#type: Option, } -/// Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. +/// Rolling update config params. Present only if +/// MachineDeploymentStrategyType = RollingUpdate. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentStrategyRollingUpdate { - /// DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. Valid values are "Random, "Newest", "Oldest" When no value is supplied, the default DeletePolicy of MachineSet is used + /// DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. + /// Valid values are "Random, "Newest", "Oldest" + /// When no value is supplied, the default DeletePolicy of MachineSet is used #[serde(default, skip_serializing_if = "Option::is_none", rename = "deletePolicy")] pub delete_policy: Option, - /// The maximum number of machines that can be scheduled above the desired number of machines. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 1. Example: when this is set to 30%, the new MachineSet can be scaled up immediately when the rolling update starts, such that the total number of old and new machines do not exceed 130% of desired machines. Once old machines have been killed, new MachineSet can be scaled up further, ensuring that total number of machines running at any time during the update is at most 130% of desired machines. + /// The maximum number of machines that can be scheduled above the + /// desired number of machines. + /// Value can be an absolute number (ex: 5) or a percentage of + /// desired machines (ex: 10%). + /// This can not be 0 if MaxUnavailable is 0. + /// Absolute number is calculated from percentage by rounding up. + /// Defaults to 1. + /// Example: when this is set to 30%, the new MachineSet can be scaled + /// up immediately when the rolling update starts, such that the total + /// number of old and new machines do not exceed 130% of desired + /// machines. Once old machines have been killed, new MachineSet can + /// be scaled up further, ensuring that total number of machines running + /// at any time during the update is at most 130% of desired machines. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxSurge")] pub max_surge: Option, - /// The maximum number of machines that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 0. Example: when this is set to 30%, the old MachineSet can be scaled down to 70% of desired machines immediately when the rolling update starts. Once new machines are ready, old MachineSet can be scaled down further, followed by scaling up the new MachineSet, ensuring that the total number of machines available at all times during the update is at least 70% of desired machines. + /// The maximum number of machines that can be unavailable during the update. + /// Value can be an absolute number (ex: 5) or a percentage of desired + /// machines (ex: 10%). + /// Absolute number is calculated from percentage by rounding down. + /// This can not be 0 if MaxSurge is 0. + /// Defaults to 0. + /// Example: when this is set to 30%, the old MachineSet can be scaled + /// down to 70% of desired machines immediately when the rolling update + /// starts. Once new machines are ready, old MachineSet can be scaled + /// down further, followed by scaling up the new MachineSet, ensuring + /// that the total number of machines available at all times + /// during the update is at least 70% of desired machines. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")] pub max_unavailable: Option, } -/// Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate. +/// Rolling update config params. Present only if +/// MachineDeploymentStrategyType = RollingUpdate. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MachineDeploymentStrategyRollingUpdateDeletePolicy { Random, @@ -101,7 +171,8 @@ pub enum MachineDeploymentStrategyRollingUpdateDeletePolicy { Oldest, } -/// The deployment strategy to use to replace existing machines with new ones. +/// The deployment strategy to use to replace existing machines with +/// new ones. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MachineDeploymentStrategyType { RollingUpdate, @@ -111,115 +182,176 @@ pub enum MachineDeploymentStrategyType { /// Template describes the machines that will be created. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentTemplate { - /// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// Standard object's metadata. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, - /// Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// Specification of the desired behavior of the machine. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status #[serde(default, skip_serializing_if = "Option::is_none")] pub spec: Option, } -/// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata +/// Standard object's metadata. +/// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentTemplateMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } -/// Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status +/// Specification of the desired behavior of the machine. +/// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentTemplateSpec { - /// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + /// Bootstrap is a reference to a local struct which encapsulates + /// fields to configure the Machine’s bootstrapping mechanism. pub bootstrap: MachineDeploymentTemplateSpecBootstrap, /// ClusterName is the name of the Cluster this object belongs to. #[serde(rename = "clusterName")] pub cluster_name: String, - /// FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + /// FailureDomain is the failure domain the machine will be created in. + /// Must match a key in the FailureDomains map stored on the cluster object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomain")] pub failure_domain: Option, - /// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + /// InfrastructureRef is a required reference to a custom resource + /// offered by an infrastructure provider. #[serde(rename = "infrastructureRef")] pub infrastructure_ref: MachineDeploymentTemplateSpecInfrastructureRef, - /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. + /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + /// hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + /// Defaults to 10 seconds. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDeletionTimeout")] pub node_deletion_timeout: Option, - /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + /// The default value is 0, meaning that the node can be drained without any time limitations. + /// NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDrainTimeout")] pub node_drain_timeout: Option, - /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + /// to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeVolumeDetachTimeout")] pub node_volume_detach_timeout: Option, - /// ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + /// ProviderID is the identification ID of the machine provided by the provider. + /// This field must match the provider ID as seen on the node object corresponding to this machine. + /// This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + /// with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + /// machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + /// generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + /// able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + /// and then a comparison is done to find out unregistered machines and are marked for delete. + /// This field will be set by the actuators and consumed by higher level entities like autoscaler that will + /// be interfacing with cluster-api as generic provider. #[serde(default, skip_serializing_if = "Option::is_none", rename = "providerID")] pub provider_id: Option, - /// Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + /// Version defines the desired Kubernetes version. + /// This field is meant to be optionally used by bootstrap providers. #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, } -/// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. +/// Bootstrap is a reference to a local struct which encapsulates +/// fields to configure the Machine’s bootstrapping mechanism. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentTemplateSpecBootstrap { - /// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + /// ConfigRef is a reference to a bootstrap provider-specific resource + /// that holds configuration details. The reference is optional to + /// allow users/operators to specify Bootstrap.DataSecretName without + /// the need of a controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "configRef")] pub config_ref: Option, - /// DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + /// DataSecretName is the name of the secret that stores the bootstrap data script. + /// If nil, the Machine should remain in the Pending state. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSecretName")] pub data_secret_name: Option, } -/// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. +/// ConfigRef is a reference to a bootstrap provider-specific resource +/// that holds configuration details. The reference is optional to +/// allow users/operators to specify Bootstrap.DataSecretName without +/// the need of a controller. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentTemplateSpecBootstrapConfigRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. +/// InfrastructureRef is a required reference to a custom resource +/// offered by an infrastructure provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentTemplateSpecInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } @@ -227,7 +359,8 @@ pub struct MachineDeploymentTemplateSpecInfrastructureRef { /// MachineDeploymentStatus defines the observed state of MachineDeployment. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentStatus { - /// Total number of available machines (ready for at least minReadySeconds) targeted by this deployment. + /// Total number of available machines (ready for at least minReadySeconds) + /// targeted by this deployment. #[serde(default, skip_serializing_if = "Option::is_none", rename = "availableReplicas")] pub available_replicas: Option, /// Conditions defines current service state of the MachineDeployment. @@ -242,16 +375,24 @@ pub struct MachineDeploymentStatus { /// Total number of ready machines targeted by this deployment. #[serde(default, skip_serializing_if = "Option::is_none", rename = "readyReplicas")] pub ready_replicas: Option, - /// Total number of non-terminated machines targeted by this deployment (their labels match the selector). + /// Total number of non-terminated machines targeted by this deployment + /// (their labels match the selector). #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// Selector is the same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors + /// Selector is the same as the label selector but in the string format to avoid introspection + /// by clients. The string will be in the same format as the query-param syntax. + /// More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, - /// Total number of unavailable machines targeted by this deployment. This is the total number of machines that are still required for the deployment to have 100% available capacity. They may either be machines that are running but not yet available or machines that still have not been created. + /// Total number of unavailable machines targeted by this deployment. + /// This is the total number of machines that are still required for + /// the deployment to have 100% available capacity. They may either + /// be machines that are running but not yet available or machines + /// that still have not been created. #[serde(default, skip_serializing_if = "Option::is_none", rename = "unavailableReplicas")] pub unavailable_replicas: Option, - /// Total number of non-terminated machines targeted by this deployment that have the desired template spec. + /// Total number of non-terminated machines targeted by this deployment + /// that have the desired template spec. #[serde(default, skip_serializing_if = "Option::is_none", rename = "updatedReplicas")] pub updated_replicas: Option, } @@ -259,21 +400,30 @@ pub struct MachineDeploymentStatus { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineDeploymentStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } diff --git a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinehealthchecks.rs b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinehealthchecks.rs index 55cb8c2bd..fa74fb812 100644 --- a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinehealthchecks.rs +++ b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinehealthchecks.rs @@ -17,49 +17,81 @@ pub struct MachineHealthCheckSpec { /// ClusterName is the name of the Cluster this object belongs to. #[serde(rename = "clusterName")] pub cluster_name: String, - /// Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by "selector" are not healthy. + /// Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by + /// "selector" are not healthy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnhealthy")] pub max_unhealthy: Option, - /// Machines older than this duration without a node will be considered to have failed and will be remediated. If not set, this value is defaulted to 10 minutes. If you wish to disable this feature, set the value explicitly to 0. + /// Machines older than this duration without a node will be considered to have + /// failed and will be remediated. + /// If not set, this value is defaulted to 10 minutes. + /// If you wish to disable this feature, set the value explicitly to 0. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeStartupTimeout")] pub node_startup_timeout: Option, - /// RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. - /// This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. + /// RemediationTemplate is a reference to a remediation template + /// provided by an infrastructure provider. + /// + /// + /// This field is completely optional, when filled, the MachineHealthCheck controller + /// creates a new object from the template referenced and hands off remediation of the machine to + /// a controller that lives outside of Cluster API. #[serde(default, skip_serializing_if = "Option::is_none", rename = "remediationTemplate")] pub remediation_template: Option, /// Label selector to match machines whose health will be exercised pub selector: MachineHealthCheckSelector, - /// UnhealthyConditions contains a list of the conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. + /// UnhealthyConditions contains a list of the conditions that determine + /// whether a node is considered unhealthy. The conditions are combined in a + /// logical OR, i.e. if any of the conditions is met, the node is unhealthy. #[serde(rename = "unhealthyConditions")] pub unhealthy_conditions: Vec, - /// Any further remediation is only allowed if the number of machines selected by "selector" as not healthy is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. Eg. "[3-5]" - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy machines (and) (b) there are at most 5 unhealthy machines + /// Any further remediation is only allowed if the number of machines selected by "selector" as not healthy + /// is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. + /// Eg. "[3-5]" - This means that remediation will be allowed only when: + /// (a) there are at least 3 unhealthy machines (and) + /// (b) there are at most 5 unhealthy machines #[serde(default, skip_serializing_if = "Option::is_none", rename = "unhealthyRange")] pub unhealthy_range: Option, } -/// RemediationTemplate is a reference to a remediation template provided by an infrastructure provider. -/// This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. +/// RemediationTemplate is a reference to a remediation template +/// provided by an infrastructure provider. +/// +/// +/// This field is completely optional, when filled, the MachineHealthCheck controller +/// creates a new object from the template referenced and hands off remediation of the machine to +/// a controller that lives outside of Cluster API. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineHealthCheckRemediationTemplate { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } @@ -70,24 +102,33 @@ pub struct MachineHealthCheckSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] pub match_expressions: Option>, - /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + /// map is equivalent to an element of matchExpressions, whose key field is "key", the + /// operator is "In", and the values array contains only "value". The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] pub match_labels: Option>, } -/// A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +/// A label selector requirement is a selector that contains values, a key, and an operator that +/// relates the key and values. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineHealthCheckSelectorMatchExpressions { /// key is the label key that the selector applies to. pub key: String, - /// operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + /// operator represents a key's relationship to a set of values. + /// Valid operators are In, NotIn, Exists and DoesNotExist. pub operator: String, - /// values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + /// values is an array of string values. If the operator is In or NotIn, + /// the values array must be non-empty. If the operator is Exists or DoesNotExist, + /// the values array must be empty. This array is replaced during a strategic + /// merge patch. #[serde(default, skip_serializing_if = "Option::is_none")] pub values: Option>, } -/// UnhealthyCondition represents a Node condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a node is considered unhealthy. +/// UnhealthyCondition represents a Node condition type and value with a timeout +/// specified as a duration. When the named condition has been in the given +/// status for at least the timeout value, a node is considered unhealthy. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineHealthCheckUnhealthyConditions { pub status: String, @@ -111,7 +152,8 @@ pub struct MachineHealthCheckStatus { /// ObservedGeneration is the latest generation observed by the controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// RemediationsAllowed is the number of further remediations allowed by this machine health check before maxUnhealthy short circuiting will be applied + /// RemediationsAllowed is the number of further remediations allowed by this machine health check before + /// maxUnhealthy short circuiting will be applied #[serde(default, skip_serializing_if = "Option::is_none", rename = "remediationsAllowed")] pub remediations_allowed: Option, /// Targets shows the current list of machines the machine health check is watching @@ -122,21 +164,30 @@ pub struct MachineHealthCheckStatus { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineHealthCheckStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } diff --git a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinepools.rs b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinepools.rs index 22abb36ba..41d24b46e 100644 --- a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinepools.rs +++ b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinepools.rs @@ -19,13 +19,19 @@ pub struct MachinePoolSpec { /// FailureDomains is the list of failure domains this MachinePool should be attached to. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomains")] pub failure_domains: Option>, - /// Minimum number of seconds for which a newly created machine instances should be ready. Defaults to 0 (machine instance will be considered available as soon as it is ready) NOTE: No logic is implemented for this field and it currently has no behaviour. + /// Minimum number of seconds for which a newly created machine instances should + /// be ready. + /// Defaults to 0 (machine instance will be considered available as soon as it + /// is ready) + /// NOTE: No logic is implemented for this field and it currently has no behaviour. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minReadySeconds")] pub min_ready_seconds: Option, - /// ProviderIDList are the identification IDs of machine instances provided by the provider. This field must match the provider IDs as seen on the node objects corresponding to a machine pool's machine instances. + /// ProviderIDList are the identification IDs of machine instances provided by the provider. + /// This field must match the provider IDs as seen on the node objects corresponding to a machine pool's machine instances. #[serde(default, skip_serializing_if = "Option::is_none", rename = "providerIDList")] pub provider_id_list: Option>, - /// Number of desired machines. Defaults to 1. This is a pointer to distinguish between explicit zero and not specified. + /// Number of desired machines. Defaults to 1. + /// This is a pointer to distinguish between explicit zero and not specified. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, /// Template describes the machines that will be created. @@ -35,115 +41,176 @@ pub struct MachinePoolSpec { /// Template describes the machines that will be created. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolTemplate { - /// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// Standard object's metadata. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, - /// Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// Specification of the desired behavior of the machine. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status #[serde(default, skip_serializing_if = "Option::is_none")] pub spec: Option, } -/// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata +/// Standard object's metadata. +/// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolTemplateMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } -/// Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status +/// Specification of the desired behavior of the machine. +/// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolTemplateSpec { - /// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + /// Bootstrap is a reference to a local struct which encapsulates + /// fields to configure the Machine’s bootstrapping mechanism. pub bootstrap: MachinePoolTemplateSpecBootstrap, /// ClusterName is the name of the Cluster this object belongs to. #[serde(rename = "clusterName")] pub cluster_name: String, - /// FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + /// FailureDomain is the failure domain the machine will be created in. + /// Must match a key in the FailureDomains map stored on the cluster object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomain")] pub failure_domain: Option, - /// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + /// InfrastructureRef is a required reference to a custom resource + /// offered by an infrastructure provider. #[serde(rename = "infrastructureRef")] pub infrastructure_ref: MachinePoolTemplateSpecInfrastructureRef, - /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. + /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + /// hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + /// Defaults to 10 seconds. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDeletionTimeout")] pub node_deletion_timeout: Option, - /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + /// The default value is 0, meaning that the node can be drained without any time limitations. + /// NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDrainTimeout")] pub node_drain_timeout: Option, - /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + /// to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeVolumeDetachTimeout")] pub node_volume_detach_timeout: Option, - /// ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + /// ProviderID is the identification ID of the machine provided by the provider. + /// This field must match the provider ID as seen on the node object corresponding to this machine. + /// This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + /// with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + /// machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + /// generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + /// able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + /// and then a comparison is done to find out unregistered machines and are marked for delete. + /// This field will be set by the actuators and consumed by higher level entities like autoscaler that will + /// be interfacing with cluster-api as generic provider. #[serde(default, skip_serializing_if = "Option::is_none", rename = "providerID")] pub provider_id: Option, - /// Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + /// Version defines the desired Kubernetes version. + /// This field is meant to be optionally used by bootstrap providers. #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, } -/// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. +/// Bootstrap is a reference to a local struct which encapsulates +/// fields to configure the Machine’s bootstrapping mechanism. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolTemplateSpecBootstrap { - /// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + /// ConfigRef is a reference to a bootstrap provider-specific resource + /// that holds configuration details. The reference is optional to + /// allow users/operators to specify Bootstrap.DataSecretName without + /// the need of a controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "configRef")] pub config_ref: Option, - /// DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + /// DataSecretName is the name of the secret that stores the bootstrap data script. + /// If nil, the Machine should remain in the Pending state. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSecretName")] pub data_secret_name: Option, } -/// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. +/// ConfigRef is a reference to a bootstrap provider-specific resource +/// that holds configuration details. The reference is optional to +/// allow users/operators to specify Bootstrap.DataSecretName without +/// the need of a controller. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolTemplateSpecBootstrapConfigRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. +/// InfrastructureRef is a required reference to a custom resource +/// offered by an infrastructure provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolTemplateSpecInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } @@ -160,10 +227,12 @@ pub struct MachinePoolStatus { /// Conditions define the current service state of the MachinePool. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, - /// FailureMessage indicates that there is a problem reconciling the state, and will be set to a descriptive error message. + /// FailureMessage indicates that there is a problem reconciling the state, + /// and will be set to a descriptive error message. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureMessage")] pub failure_message: Option, - /// FailureReason indicates that there is a problem reconciling the state, and will be set to a token value suitable for programmatic interpretation. + /// FailureReason indicates that there is a problem reconciling the state, and + /// will be set to a token value suitable for programmatic interpretation. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureReason")] pub failure_reason: Option, /// InfrastructureReady is the state of the infrastructure provider. @@ -175,7 +244,8 @@ pub struct MachinePoolStatus { /// ObservedGeneration is the latest generation observed by the controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// Phase represents the current phase of cluster actuation. E.g. Pending, Running, Terminating, Failed etc. + /// Phase represents the current phase of cluster actuation. + /// E.g. Pending, Running, Terminating, Failed etc. #[serde(default, skip_serializing_if = "Option::is_none")] pub phase: Option, /// The number of ready replicas for this MachinePool. A machine is considered ready when the node has been created and is "Ready". @@ -184,7 +254,11 @@ pub struct MachinePoolStatus { /// Replicas is the most recently observed number of replicas. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// Total number of unavailable machine instances targeted by this machine pool. This is the total number of machine instances that are still required for the machine pool to have 100% available capacity. They may either be machine instances that are running but not yet available or machine instances that still have not been created. + /// Total number of unavailable machine instances targeted by this machine pool. + /// This is the total number of machine instances that are still required for + /// the machine pool to have 100% available capacity. They may either + /// be machine instances that are running but not yet available or machine instances + /// that still have not been created. #[serde(default, skip_serializing_if = "Option::is_none", rename = "unavailableReplicas")] pub unavailable_replicas: Option, } @@ -192,48 +266,84 @@ pub struct MachinePoolStatus { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } -/// ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". Those cannot be well described when embedded. 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. -/// Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . +/// ObjectReference contains enough information to let you inspect or modify the referred object. +/// --- +/// New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. +/// 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. +/// 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular +/// restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". +/// Those cannot be well described when embedded. +/// 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. +/// 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity +/// during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple +/// and the version of the actual struct is irrelevant. +/// 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type +/// will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. +/// +/// +/// Instead of using this type, create a locally provided and used type that is well-focused on your reference. +/// For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 . #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachinePoolStatusNodeRefs { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } diff --git a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machines.rs b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machines.rs index 2bfa98de8..3c6607138 100644 --- a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machines.rs +++ b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machines.rs @@ -12,93 +12,144 @@ use serde::{Serialize, Deserialize}; #[kube(status = "MachineStatus")] #[kube(schema = "disabled")] pub struct MachineSpec { - /// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + /// Bootstrap is a reference to a local struct which encapsulates + /// fields to configure the Machine’s bootstrapping mechanism. pub bootstrap: MachineBootstrap, /// ClusterName is the name of the Cluster this object belongs to. #[serde(rename = "clusterName")] pub cluster_name: String, - /// FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + /// FailureDomain is the failure domain the machine will be created in. + /// Must match a key in the FailureDomains map stored on the cluster object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomain")] pub failure_domain: Option, - /// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + /// InfrastructureRef is a required reference to a custom resource + /// offered by an infrastructure provider. #[serde(rename = "infrastructureRef")] pub infrastructure_ref: MachineInfrastructureRef, - /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. + /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + /// hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + /// Defaults to 10 seconds. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDeletionTimeout")] pub node_deletion_timeout: Option, - /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + /// The default value is 0, meaning that the node can be drained without any time limitations. + /// NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDrainTimeout")] pub node_drain_timeout: Option, - /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + /// to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeVolumeDetachTimeout")] pub node_volume_detach_timeout: Option, - /// ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + /// ProviderID is the identification ID of the machine provided by the provider. + /// This field must match the provider ID as seen on the node object corresponding to this machine. + /// This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + /// with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + /// machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + /// generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + /// able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + /// and then a comparison is done to find out unregistered machines and are marked for delete. + /// This field will be set by the actuators and consumed by higher level entities like autoscaler that will + /// be interfacing with cluster-api as generic provider. #[serde(default, skip_serializing_if = "Option::is_none", rename = "providerID")] pub provider_id: Option, - /// Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + /// Version defines the desired Kubernetes version. + /// This field is meant to be optionally used by bootstrap providers. #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, } -/// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. +/// Bootstrap is a reference to a local struct which encapsulates +/// fields to configure the Machine’s bootstrapping mechanism. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineBootstrap { - /// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + /// ConfigRef is a reference to a bootstrap provider-specific resource + /// that holds configuration details. The reference is optional to + /// allow users/operators to specify Bootstrap.DataSecretName without + /// the need of a controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "configRef")] pub config_ref: Option, - /// DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + /// DataSecretName is the name of the secret that stores the bootstrap data script. + /// If nil, the Machine should remain in the Pending state. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSecretName")] pub data_secret_name: Option, } -/// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. +/// ConfigRef is a reference to a bootstrap provider-specific resource +/// that holds configuration details. The reference is optional to +/// allow users/operators to specify Bootstrap.DataSecretName without +/// the need of a controller. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineBootstrapConfigRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. +/// InfrastructureRef is a required reference to a custom resource +/// offered by an infrastructure provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } @@ -106,26 +157,58 @@ pub struct MachineInfrastructureRef { /// MachineStatus defines the observed state of Machine. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineStatus { - /// Addresses is a list of addresses assigned to the machine. This field is copied from the infrastructure provider reference. + /// Addresses is a list of addresses assigned to the machine. + /// This field is copied from the infrastructure provider reference. #[serde(default, skip_serializing_if = "Option::is_none")] pub addresses: Option>, /// BootstrapReady is the state of the bootstrap provider. #[serde(default, skip_serializing_if = "Option::is_none", rename = "bootstrapReady")] pub bootstrap_ready: Option, - /// CertificatesExpiryDate is the expiry date of the machine certificates. This value is only set for control plane machines. + /// CertificatesExpiryDate is the expiry date of the machine certificates. + /// This value is only set for control plane machines. #[serde(default, skip_serializing_if = "Option::is_none", rename = "certificatesExpiryDate")] pub certificates_expiry_date: Option, /// Conditions defines current service state of the Machine. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, - /// FailureMessage will be set in the event that there is a terminal problem reconciling the Machine and will contain a more verbose string suitable for logging and human consumption. - /// This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. - /// Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output. + /// FailureMessage will be set in the event that there is a terminal problem + /// reconciling the Machine and will contain a more verbose string suitable + /// for logging and human consumption. + /// + /// + /// This field should not be set for transitive errors that a controller + /// faces that are expected to be fixed automatically over + /// time (like service outages), but instead indicate that something is + /// fundamentally wrong with the Machine's spec or the configuration of + /// the controller, and that manual intervention is required. Examples + /// of terminal errors would be invalid combinations of settings in the + /// spec, values that are unsupported by the controller, or the + /// responsible controller itself being critically misconfigured. + /// + /// + /// Any transient errors that occur during the reconciliation of Machines + /// can be added as events to the Machine object and/or logged in the + /// controller's output. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureMessage")] pub failure_message: Option, - /// FailureReason will be set in the event that there is a terminal problem reconciling the Machine and will contain a succinct value suitable for machine interpretation. - /// This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine's spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. - /// Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller's output. + /// FailureReason will be set in the event that there is a terminal problem + /// reconciling the Machine and will contain a succinct value suitable + /// for machine interpretation. + /// + /// + /// This field should not be set for transitive errors that a controller + /// faces that are expected to be fixed automatically over + /// time (like service outages), but instead indicate that something is + /// fundamentally wrong with the Machine's spec or the configuration of + /// the controller, and that manual intervention is required. Examples + /// of terminal errors would be invalid combinations of settings in the + /// spec, values that are unsupported by the controller, or the + /// responsible controller itself being critically misconfigured. + /// + /// + /// Any transient errors that occur during the reconciliation of Machines + /// can be added as events to the Machine object and/or logged in the + /// controller's output. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureReason")] pub failure_reason: Option, /// InfrastructureReady is the state of the infrastructure provider. @@ -134,7 +217,8 @@ pub struct MachineStatus { /// LastUpdated identifies when the phase of the Machine last transitioned. #[serde(default, skip_serializing_if = "Option::is_none", rename = "lastUpdated")] pub last_updated: Option, - /// NodeInfo is a set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info + /// NodeInfo is a set of ids/uuids to uniquely identify the node. + /// More info: https://kubernetes.io/docs/concepts/nodes/node/#info #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeInfo")] pub node_info: Option, /// NodeRef will point to the corresponding Node if it exists. @@ -143,7 +227,8 @@ pub struct MachineStatus { /// ObservedGeneration is the latest generation observed by the controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// Phase represents the current phase of machine actuation. E.g. Pending, Running, Terminating, Failed etc. + /// Phase represents the current phase of machine actuation. + /// E.g. Pending, Running, Terminating, Failed etc. #[serde(default, skip_serializing_if = "Option::is_none")] pub phase: Option, } @@ -161,26 +246,36 @@ pub struct MachineStatusAddresses { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } -/// NodeInfo is a set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info +/// NodeInfo is a set of ids/uuids to uniquely identify the node. +/// More info: https://kubernetes.io/docs/concepts/nodes/node/#info #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineStatusNodeInfo { /// The Architecture reported by the node @@ -200,7 +295,9 @@ pub struct MachineStatusNodeInfo { /// Kubelet Version reported by the node. #[serde(rename = "kubeletVersion")] pub kubelet_version: String, - /// MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html + /// MachineID reported by the node. For unique machine identification + /// in the cluster this field is preferred. Learn more from man(5) + /// machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html #[serde(rename = "machineID")] pub machine_id: String, /// The Operating System reported by the node @@ -209,7 +306,9 @@ pub struct MachineStatusNodeInfo { /// OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)). #[serde(rename = "osImage")] pub os_image: String, - /// SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid + /// SystemUUID reported by the node. For unique machine identification + /// MachineID is preferred. This field is specific to Red Hat hosts + /// https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid #[serde(rename = "systemUUID")] pub system_uuid: String, } @@ -220,22 +319,34 @@ pub struct MachineStatusNodeRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } diff --git a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinesets.rs b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinesets.rs index 42fc6147b..7e2ba244c 100644 --- a/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinesets.rs +++ b/kube-custom-resources-rs/src/cluster_x_k8s_io/v1beta1/machinesets.rs @@ -16,19 +16,42 @@ pub struct MachineSetSpec { /// ClusterName is the name of the Cluster this object belongs to. #[serde(rename = "clusterName")] pub cluster_name: String, - /// DeletePolicy defines the policy used to identify nodes to delete when downscaling. Defaults to "Random". Valid values are "Random, "Newest", "Oldest" + /// DeletePolicy defines the policy used to identify nodes to delete when downscaling. + /// Defaults to "Random". Valid values are "Random, "Newest", "Oldest" #[serde(default, skip_serializing_if = "Option::is_none", rename = "deletePolicy")] pub delete_policy: Option, - /// MinReadySeconds is the minimum number of seconds for which a Node for a newly created machine should be ready before considering the replica available. Defaults to 0 (machine will be considered available as soon as the Node is ready) + /// MinReadySeconds is the minimum number of seconds for which a Node for a newly created machine should be ready before considering the replica available. + /// Defaults to 0 (machine will be considered available as soon as the Node is ready) #[serde(default, skip_serializing_if = "Option::is_none", rename = "minReadySeconds")] pub min_ready_seconds: Option, - /// Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. - /// Defaults to: * if the Kubernetes autoscaler min size and max size annotations are set: - if it's a new MachineSet, use min size - if the replicas field of the old MachineSet is < min size, use min size - if the replicas field of the old MachineSet is > max size, use max size - if the replicas field of the old MachineSet is in the (min size, max size) range, keep the value from the oldMS * otherwise use 1 Note: Defaulting will be run whenever the replicas field is not set: * A new MachineSet is created with replicas not set. * On an existing MachineSet the replicas field was first set and is now unset. Those cases are especially relevant for the following Kubernetes autoscaler use cases: * A new MachineSet is created and replicas should be managed by the autoscaler * An existing MachineSet which initially wasn't controlled by the autoscaler should be later controlled by the autoscaler + /// Replicas is the number of desired replicas. + /// This is a pointer to distinguish between explicit zero and unspecified. + /// + /// + /// Defaults to: + /// * if the Kubernetes autoscaler min size and max size annotations are set: + /// - if it's a new MachineSet, use min size + /// - if the replicas field of the old MachineSet is < min size, use min size + /// - if the replicas field of the old MachineSet is > max size, use max size + /// - if the replicas field of the old MachineSet is in the (min size, max size) range, keep the value from the oldMS + /// * otherwise use 1 + /// Note: Defaulting will be run whenever the replicas field is not set: + /// * A new MachineSet is created with replicas not set. + /// * On an existing MachineSet the replicas field was first set and is now unset. + /// Those cases are especially relevant for the following Kubernetes autoscaler use cases: + /// * A new MachineSet is created and replicas should be managed by the autoscaler + /// * An existing MachineSet which initially wasn't controlled by the autoscaler + /// should be later controlled by the autoscaler #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// Selector is a label query over machines that should match the replica count. Label keys and values that must match in order to be controlled by this MachineSet. It must match the machine template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors + /// Selector is a label query over machines that should match the replica count. + /// Label keys and values that must match in order to be controlled by this MachineSet. + /// It must match the machine template's labels. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors pub selector: MachineSetSelector, - /// Template is the object that describes the machine that will be created if insufficient replicas are detected. Object references to custom resources are treated as templates. + /// Template is the object that describes the machine that will be created if + /// insufficient replicas are detected. + /// Object references to custom resources are treated as templates. #[serde(default, skip_serializing_if = "Option::is_none")] pub template: Option, } @@ -41,141 +64,214 @@ pub enum MachineSetDeletePolicy { Oldest, } -/// Selector is a label query over machines that should match the replica count. Label keys and values that must match in order to be controlled by this MachineSet. It must match the machine template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors +/// Selector is a label query over machines that should match the replica count. +/// Label keys and values that must match in order to be controlled by this MachineSet. +/// It must match the machine template's labels. +/// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] pub match_expressions: Option>, - /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + /// map is equivalent to an element of matchExpressions, whose key field is "key", the + /// operator is "In", and the values array contains only "value". The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] pub match_labels: Option>, } -/// A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +/// A label selector requirement is a selector that contains values, a key, and an operator that +/// relates the key and values. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetSelectorMatchExpressions { /// key is the label key that the selector applies to. pub key: String, - /// operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + /// operator represents a key's relationship to a set of values. + /// Valid operators are In, NotIn, Exists and DoesNotExist. pub operator: String, - /// values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + /// values is an array of string values. If the operator is In or NotIn, + /// the values array must be non-empty. If the operator is Exists or DoesNotExist, + /// the values array must be empty. This array is replaced during a strategic + /// merge patch. #[serde(default, skip_serializing_if = "Option::is_none")] pub values: Option>, } -/// Template is the object that describes the machine that will be created if insufficient replicas are detected. Object references to custom resources are treated as templates. +/// Template is the object that describes the machine that will be created if +/// insufficient replicas are detected. +/// Object references to custom resources are treated as templates. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetTemplate { - /// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// Standard object's metadata. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata #[serde(default, skip_serializing_if = "Option::is_none")] pub metadata: Option, - /// Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// Specification of the desired behavior of the machine. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status #[serde(default, skip_serializing_if = "Option::is_none")] pub spec: Option, } -/// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata +/// Standard object's metadata. +/// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetTemplateMetadata { - /// Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations + /// Annotations is an unstructured key value map stored with a resource that may be + /// set by external tools to store and retrieve arbitrary metadata. They are not + /// queryable and should be preserved when modifying objects. + /// More info: http://kubernetes.io/docs/user-guide/annotations #[serde(default, skip_serializing_if = "Option::is_none")] pub annotations: Option>, - /// Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels + /// Map of string keys and values that can be used to organize and categorize + /// (scope and select) objects. May match selectors of replication controllers + /// and services. + /// More info: http://kubernetes.io/docs/user-guide/labels #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option>, } -/// Specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status +/// Specification of the desired behavior of the machine. +/// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetTemplateSpec { - /// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. + /// Bootstrap is a reference to a local struct which encapsulates + /// fields to configure the Machine’s bootstrapping mechanism. pub bootstrap: MachineSetTemplateSpecBootstrap, /// ClusterName is the name of the Cluster this object belongs to. #[serde(rename = "clusterName")] pub cluster_name: String, - /// FailureDomain is the failure domain the machine will be created in. Must match a key in the FailureDomains map stored on the cluster object. + /// FailureDomain is the failure domain the machine will be created in. + /// Must match a key in the FailureDomains map stored on the cluster object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureDomain")] pub failure_domain: Option, - /// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. + /// InfrastructureRef is a required reference to a custom resource + /// offered by an infrastructure provider. #[serde(rename = "infrastructureRef")] pub infrastructure_ref: MachineSetTemplateSpecInfrastructureRef, - /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. + /// NodeDeletionTimeout defines how long the controller will attempt to delete the Node that the Machine + /// hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. + /// Defaults to 10 seconds. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDeletionTimeout")] pub node_deletion_timeout: Option, - /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` + /// NodeDrainTimeout is the total amount of time that the controller will spend on draining a node. + /// The default value is 0, meaning that the node can be drained without any time limitations. + /// NOTE: NodeDrainTimeout is different from `kubectl drain --timeout` #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeDrainTimeout")] pub node_drain_timeout: Option, - /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. + /// NodeVolumeDetachTimeout is the total amount of time that the controller will spend on waiting for all volumes + /// to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeVolumeDetachTimeout")] pub node_volume_detach_timeout: Option, - /// ProviderID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. + /// ProviderID is the identification ID of the machine provided by the provider. + /// This field must match the provider ID as seen on the node object corresponding to this machine. + /// This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + /// with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + /// machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + /// generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + /// able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + /// and then a comparison is done to find out unregistered machines and are marked for delete. + /// This field will be set by the actuators and consumed by higher level entities like autoscaler that will + /// be interfacing with cluster-api as generic provider. #[serde(default, skip_serializing_if = "Option::is_none", rename = "providerID")] pub provider_id: Option, - /// Version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. + /// Version defines the desired Kubernetes version. + /// This field is meant to be optionally used by bootstrap providers. #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, } -/// Bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. +/// Bootstrap is a reference to a local struct which encapsulates +/// fields to configure the Machine’s bootstrapping mechanism. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetTemplateSpecBootstrap { - /// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. + /// ConfigRef is a reference to a bootstrap provider-specific resource + /// that holds configuration details. The reference is optional to + /// allow users/operators to specify Bootstrap.DataSecretName without + /// the need of a controller. #[serde(default, skip_serializing_if = "Option::is_none", rename = "configRef")] pub config_ref: Option, - /// DataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. + /// DataSecretName is the name of the secret that stores the bootstrap data script. + /// If nil, the Machine should remain in the Pending state. #[serde(default, skip_serializing_if = "Option::is_none", rename = "dataSecretName")] pub data_secret_name: Option, } -/// ConfigRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. +/// ConfigRef is a reference to a bootstrap provider-specific resource +/// that holds configuration details. The reference is optional to +/// allow users/operators to specify Bootstrap.DataSecretName without +/// the need of a controller. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetTemplateSpecBootstrapConfigRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } -/// InfrastructureRef is a required reference to a custom resource offered by an infrastructure provider. +/// InfrastructureRef is a required reference to a custom resource +/// offered by an infrastructure provider. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetTemplateSpecInfrastructureRef { /// API version of the referent. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future. + /// If referring to a piece of an object instead of an entire object, this string + /// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + /// For example, if the object reference is to a container within a pod, this would take on a value like: + /// "spec.containers{name}" (where "name" refers to the name of the container that triggered + /// the event) or if no container name is specified "spec.containers[2]" (container with + /// index 2 in this pod). This syntax is chosen only to have some well-defined way of + /// referencing a part of an object. + /// TODO: this design is not final and this field is subject to change in the future. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fieldPath")] pub field_path: Option, - /// Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + /// Kind of the referent. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds #[serde(default, skip_serializing_if = "Option::is_none")] pub kind: Option, - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + /// Name of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + /// Namespace of the referent. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ #[serde(default, skip_serializing_if = "Option::is_none")] pub namespace: Option, - /// Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + /// Specific resourceVersion to which this reference is made, if any. + /// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency #[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceVersion")] pub resource_version: Option, - /// UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + /// 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, } @@ -191,9 +287,26 @@ pub struct MachineSetStatus { pub conditions: Option>, #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureMessage")] pub failure_message: Option, - /// In the event that there is a terminal problem reconciling the replicas, both FailureReason and FailureMessage will be set. FailureReason will be populated with a succinct value suitable for machine interpretation, while FailureMessage will contain a more verbose string suitable for logging and human consumption. - /// These fields should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the MachineTemplate's spec or the configuration of the machine controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the machine controller, or the responsible machine controller itself being critically misconfigured. - /// Any transient errors that occur during the reconciliation of Machines can be added as events to the MachineSet object and/or logged in the controller's output. + /// In the event that there is a terminal problem reconciling the + /// replicas, both FailureReason and FailureMessage will be set. FailureReason + /// will be populated with a succinct value suitable for machine + /// interpretation, while FailureMessage will contain a more verbose + /// string suitable for logging and human consumption. + /// + /// + /// These fields should not be set for transitive errors that a + /// controller faces that are expected to be fixed automatically over + /// time (like service outages), but instead indicate that something is + /// fundamentally wrong with the MachineTemplate's spec or the configuration of + /// the machine controller, and that manual intervention is required. Examples + /// of terminal errors would be invalid combinations of settings in the + /// spec, values that are unsupported by the machine controller, or the + /// responsible machine controller itself being critically misconfigured. + /// + /// + /// Any transient errors that occur during the reconciliation of Machines + /// can be added as events to the MachineSet object and/or logged in the + /// controller's output. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureReason")] pub failure_reason: Option, /// The number of replicas that have labels matching the labels of the machine template of the MachineSet. @@ -208,7 +321,9 @@ pub struct MachineSetStatus { /// Replicas is the most recently observed number of replicas. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// Selector is the same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors + /// Selector is the same as the label selector but in the string format to avoid introspection + /// by clients. The string will be in the same format as the query-param syntax. + /// More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors #[serde(default, skip_serializing_if = "Option::is_none")] pub selector: Option, } @@ -216,21 +331,30 @@ pub struct MachineSetStatus { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MachineSetStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } 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 5189cf572..c3c180b65 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 @@ -156,12 +156,15 @@ pub struct BackupStatusActionsObjectRef { /// timeRange records the time range of backed up data, for PITR, this is the time range of recoverable data. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct BackupStatusActionsTimeRange { - /// end records the end time of backup. + /// end records the end time of backup(Coordinated Universal Time, UTC). #[serde(default, skip_serializing_if = "Option::is_none")] pub end: Option, - /// start records the start time of backup. + /// start records the start time of backup(Coordinated Universal Time, UTC). #[serde(default, skip_serializing_if = "Option::is_none")] pub start: Option, + /// time zone, only support zone offset, value range: "-12:59 ~ +13:00" + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeZone")] + pub time_zone: Option, } #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] @@ -577,12 +580,15 @@ pub struct BackupStatusTargetResourcesSelectorMatchExpressions { /// timeRange records the time range of backed up data, for PITR, this is the time range of recoverable data. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct BackupStatusTimeRange { - /// end records the end time of backup. + /// end records the end time of backup(Coordinated Universal Time, UTC). #[serde(default, skip_serializing_if = "Option::is_none")] pub end: Option, - /// start records the start time of backup. + /// start records the start time of backup(Coordinated Universal Time, UTC). #[serde(default, skip_serializing_if = "Option::is_none")] pub start: Option, + /// time zone, only support zone offset, value range: "-12:59 ~ +13:00" + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeZone")] + pub time_zone: Option, } #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] diff --git a/kube-custom-resources-rs/src/external_secrets_io/v1beta1/clustersecretstores.rs b/kube-custom-resources-rs/src/external_secrets_io/v1beta1/clustersecretstores.rs index 77b4901b7..66e303669 100644 --- a/kube-custom-resources-rs/src/external_secrets_io/v1beta1/clustersecretstores.rs +++ b/kube-custom-resources-rs/src/external_secrets_io/v1beta1/clustersecretstores.rs @@ -1483,6 +1483,9 @@ pub struct ClusterSecretStoreProviderVault { pub read_your_writes: Option, /// Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200". pub server: String, + /// The configuration used for client side related TLS communication, when the Vault server requires mutual authentication. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. It's worth noting this configuration is different from the "TLS certificates auth method", which is available under the `auth.cert` section. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tls: Option, /// Version is the Vault KV secret engine version. This can be either "v1" or "v2". Version defaults to "v2". #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, @@ -1895,6 +1898,45 @@ pub enum ClusterSecretStoreProviderVaultCaProviderType { ConfigMap, } +/// The configuration used for client side related TLS communication, when the Vault server requires mutual authentication. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. It's worth noting this configuration is different from the "TLS certificates auth method", which is available under the `auth.cert` section. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterSecretStoreProviderVaultTls { + /// CertSecretRef is a certificate added to the transport layer when communicating with the Vault server. If no key for the Secret is specified, external-secret will default to 'tls.crt'. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "certSecretRef")] + pub cert_secret_ref: Option, + /// KeySecretRef to a key in a Secret resource containing client private key added to the transport layer when communicating with the Vault server. If no key for the Secret is specified, external-secret will default to 'tls.key'. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "keySecretRef")] + pub key_secret_ref: Option, +} + +/// CertSecretRef is a certificate added to the transport layer when communicating with the Vault server. If no key for the Secret is specified, external-secret will default to 'tls.crt'. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterSecretStoreProviderVaultTlsCertSecretRef { + /// The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub key: Option, + /// The name of the Secret resource being referred to. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + +/// KeySecretRef to a key in a Secret resource containing client private key added to the transport layer when communicating with the Vault server. If no key for the Secret is specified, external-secret will default to 'tls.key'. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct ClusterSecretStoreProviderVaultTlsKeySecretRef { + /// The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub key: Option, + /// The name of the Secret resource being referred to. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + /// Vault configures this store to sync secrets using Hashi provider #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum ClusterSecretStoreProviderVaultVersion { diff --git a/kube-custom-resources-rs/src/external_secrets_io/v1beta1/secretstores.rs b/kube-custom-resources-rs/src/external_secrets_io/v1beta1/secretstores.rs index 9f8178c5e..67dbd93c2 100644 --- a/kube-custom-resources-rs/src/external_secrets_io/v1beta1/secretstores.rs +++ b/kube-custom-resources-rs/src/external_secrets_io/v1beta1/secretstores.rs @@ -1484,6 +1484,9 @@ pub struct SecretStoreProviderVault { pub read_your_writes: Option, /// Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200". pub server: String, + /// The configuration used for client side related TLS communication, when the Vault server requires mutual authentication. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. It's worth noting this configuration is different from the "TLS certificates auth method", which is available under the `auth.cert` section. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tls: Option, /// Version is the Vault KV secret engine version. This can be either "v1" or "v2". Version defaults to "v2". #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, @@ -1896,6 +1899,45 @@ pub enum SecretStoreProviderVaultCaProviderType { ConfigMap, } +/// The configuration used for client side related TLS communication, when the Vault server requires mutual authentication. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. It's worth noting this configuration is different from the "TLS certificates auth method", which is available under the `auth.cert` section. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct SecretStoreProviderVaultTls { + /// CertSecretRef is a certificate added to the transport layer when communicating with the Vault server. If no key for the Secret is specified, external-secret will default to 'tls.crt'. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "certSecretRef")] + pub cert_secret_ref: Option, + /// KeySecretRef to a key in a Secret resource containing client private key added to the transport layer when communicating with the Vault server. If no key for the Secret is specified, external-secret will default to 'tls.key'. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "keySecretRef")] + pub key_secret_ref: Option, +} + +/// CertSecretRef is a certificate added to the transport layer when communicating with the Vault server. If no key for the Secret is specified, external-secret will default to 'tls.crt'. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct SecretStoreProviderVaultTlsCertSecretRef { + /// The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub key: Option, + /// The name of the Secret resource being referred to. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + +/// KeySecretRef to a key in a Secret resource containing client private key added to the transport layer when communicating with the Vault server. If no key for the Secret is specified, external-secret will default to 'tls.key'. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct SecretStoreProviderVaultTlsKeySecretRef { + /// The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub key: Option, + /// The name of the Secret resource being referred to. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Namespace of the resource being referred to. Ignored if referent is not cluster-scoped. cluster-scoped defaults to the namespace of the referent. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub namespace: Option, +} + /// Vault configures this store to sync secrets using Hashi provider #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum SecretStoreProviderVaultVersion { diff --git a/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/nginxgateways.rs b/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/nginxgateways.rs index 7ca6cde19..61e119688 100644 --- a/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/nginxgateways.rs +++ b/kube-custom-resources-rs/src/gateway_nginx_org/v1alpha1/nginxgateways.rs @@ -43,31 +43,71 @@ pub struct NginxGatewayStatus { pub conditions: Option>, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct NginxGatewayStatusConditions { - /// lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// lastTransitionTime is the last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// message is a human readable message indicating details about the transition. This may be an empty string. + /// message is a human readable message indicating details about the transition. + /// This may be an empty string. pub message: String, - /// observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + /// observedGeneration represents the .metadata.generation that the condition was set based upon. + /// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + /// with respect to the current state of the instance. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + /// reason contains a programmatic identifier indicating the reason for the condition's last transition. + /// Producers of specific condition types may define expected values and meanings for this field, + /// and whether the values are considered a guaranteed API. + /// The value should be a CamelCase string. + /// This field may not be empty. pub reason: String, /// status of the condition, one of True, False, Unknown. pub status: NginxGatewayStatusConditionsStatus, - /// type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + /// type of condition in CamelCase or in foo.example.com/CamelCase. + /// --- + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + /// useful (see .node.status.conditions), the ability to deconflict is important. + /// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) #[serde(rename = "type")] pub r#type: String, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum NginxGatewayStatusConditionsStatus { True, diff --git a/kube-custom-resources-rs/src/installation_mattermost_com/v1beta1/mattermosts.rs b/kube-custom-resources-rs/src/installation_mattermost_com/v1beta1/mattermosts.rs index 148fcfc99..890b240be 100644 --- a/kube-custom-resources-rs/src/installation_mattermost_com/v1beta1/mattermosts.rs +++ b/kube-custom-resources-rs/src/installation_mattermost_com/v1beta1/mattermosts.rs @@ -468,12 +468,15 @@ pub struct MattermostMattermostEnvValueFromSecretKeyRef { /// PodExtensions specify custom extensions for Mattermost pods. This can be used for custom readiness checks etc. These settings generally don't need to be changed. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MattermostPodExtensions { - /// Additional Container Ports injected to pod's main container. The setting does not override ContainerPorts defined by the Operator. + /// Additional Container Ports injected into pod's main container. The setting does not override ContainerPorts defined by the Operator. #[serde(default, skip_serializing_if = "Option::is_none", rename = "containerPorts")] pub container_ports: Option>, - /// Additional InitContainers injected to pods. The setting does not override InitContainers defined by the Operator. + /// Additional InitContainers injected into pods. The setting does not override InitContainers defined by the Operator. #[serde(default, skip_serializing_if = "Option::is_none", rename = "initContainers")] pub init_containers: Option>, + /// Additional sidecar containers injected into pods. The setting does not override any sidecar containers defined by the Operator. Note that sidecars are injected as standard pod containers alongside the Mattermost application server. In the future, this may be migrated to use the currently-feature-gated init container method introduced in k8s v1.28: https://kubernetes.io/blog/2023/08/25/native-sidecar-containers/ + #[serde(default, skip_serializing_if = "Option::is_none", rename = "sidecarContainers")] + pub sidecar_containers: Option>, } /// ContainerPort represents a network port in a single container. @@ -1259,6 +1262,769 @@ pub struct MattermostPodExtensionsInitContainersVolumeMounts { pub sub_path_expr: Option, } +/// A single application container that you want to run within a pod. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainers { + /// Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. 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. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell + #[serde(default, skip_serializing_if = "Option::is_none")] + pub args: Option>, + /// Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. 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. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, + /// List of environment variables to set in the container. Cannot be updated. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub env: Option>, + /// List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "envFrom")] + pub env_from: Option>, + /// Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub image: Option, + /// Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images + #[serde(default, skip_serializing_if = "Option::is_none", rename = "imagePullPolicy")] + pub image_pull_policy: Option, + /// Actions that the management system should take in response to container lifecycle events. Cannot be updated. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub lifecycle: Option, + /// Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + #[serde(default, skip_serializing_if = "Option::is_none", rename = "livenessProbe")] + pub liveness_probe: Option, + /// Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated. + pub name: String, + /// List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default "0.0.0.0" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub ports: Option>, + /// Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readinessProbe")] + pub readiness_probe: Option, + /// Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub resources: Option, + /// SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. 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, + /// StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + #[serde(default, skip_serializing_if = "Option::is_none", rename = "startupProbe")] + pub startup_probe: Option, + /// Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub stdin: Option, + /// Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false + #[serde(default, skip_serializing_if = "Option::is_none", rename = "stdinOnce")] + pub stdin_once: Option, + /// Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationMessagePath")] + pub termination_message_path: Option, + /// Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationMessagePolicy")] + pub termination_message_policy: Option, + /// Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub tty: Option, + /// volumeDevices is the list of block devices to be used by the container. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeDevices")] + pub volume_devices: Option>, + /// Pod volumes to mount into the container's filesystem. Cannot be updated. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "volumeMounts")] + pub volume_mounts: Option>, + /// Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "workingDir")] + pub working_dir: Option, +} + +/// EnvVar represents an environment variable present in a Container. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersEnv { + /// 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, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersEnvValueFrom { + /// 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, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersEnvValueFromConfigMapKeyRef { + /// 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, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersEnvValueFromFieldRef { + /// 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, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersEnvValueFromResourceFieldRef { + /// 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, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersEnvValueFromSecretKeyRef { + /// 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, +} + +/// EnvFromSource represents the source of a set of ConfigMaps +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersEnvFrom { + /// The ConfigMap to select from + #[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapRef")] + pub config_map_ref: Option, + /// An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, + /// The Secret to select from + #[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")] + pub secret_ref: Option, +} + +/// The ConfigMap to select from +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersEnvFromConfigMapRef { + /// Name 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 must be defined + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +/// The Secret to select from +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersEnvFromSecretRef { + /// Name 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 must be defined + #[serde(default, skip_serializing_if = "Option::is_none")] + pub optional: Option, +} + +/// Actions that the management system should take in response to container lifecycle events. Cannot be updated. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLifecycle { + /// PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks + #[serde(default, skip_serializing_if = "Option::is_none", rename = "postStart")] + pub post_start: Option, + /// PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks + #[serde(default, skip_serializing_if = "Option::is_none", rename = "preStop")] + pub pre_stop: Option, +} + +/// PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLifecyclePostStart { + /// Exec specifies the action to take. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + /// HTTPGet specifies the http request to perform. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + /// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, +} + +/// Exec specifies the action to take. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLifecyclePostStartExec { + /// Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +/// HTTPGet specifies the http request to perform. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLifecyclePostStartHttpGet { + /// Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + /// Custom headers to set in the request. HTTP allows repeated headers. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + /// Path to access on the HTTP server. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + /// Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + pub port: IntOrString, + /// Scheme to use for connecting to the host. Defaults to HTTP. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +/// HTTPHeader describes a custom header to be used in HTTP probes +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLifecyclePostStartHttpGetHttpHeaders { + /// The header field name + pub name: String, + /// The header field value + pub value: String, +} + +/// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLifecyclePostStartTcpSocket { + /// Optional: Host name to connect to, defaults to the pod IP. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + /// Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + pub port: IntOrString, +} + +/// PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLifecyclePreStop { + /// Exec specifies the action to take. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + /// HTTPGet specifies the http request to perform. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + /// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, +} + +/// Exec specifies the action to take. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLifecyclePreStopExec { + /// Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +/// HTTPGet specifies the http request to perform. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLifecyclePreStopHttpGet { + /// Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + /// Custom headers to set in the request. HTTP allows repeated headers. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + /// Path to access on the HTTP server. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + /// Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + pub port: IntOrString, + /// Scheme to use for connecting to the host. Defaults to HTTP. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +/// HTTPHeader describes a custom header to be used in HTTP probes +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLifecyclePreStopHttpGetHttpHeaders { + /// The header field name + pub name: String, + /// The header field value + pub value: String, +} + +/// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLifecyclePreStopTcpSocket { + /// Optional: Host name to connect to, defaults to the pod IP. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + /// Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + pub port: IntOrString, +} + +/// Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLivenessProbe { + /// Exec specifies the action to take. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + /// GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + /// HTTPGet specifies the http request to perform. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + /// Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + /// How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + /// Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + /// TCPSocket specifies an action involving a TCP port. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + /// Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + /// Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +/// Exec specifies the action to take. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLivenessProbeExec { + /// Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +/// GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLivenessProbeGrpc { + /// Port number of the gRPC service. Number must be in the range 1 to 65535. + pub port: i32, + /// Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). + /// If this is not specified, the default behavior is defined by gRPC. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +/// HTTPGet specifies the http request to perform. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLivenessProbeHttpGet { + /// Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + /// Custom headers to set in the request. HTTP allows repeated headers. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + /// Path to access on the HTTP server. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + /// Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + pub port: IntOrString, + /// Scheme to use for connecting to the host. Defaults to HTTP. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +/// HTTPHeader describes a custom header to be used in HTTP probes +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLivenessProbeHttpGetHttpHeaders { + /// The header field name + pub name: String, + /// The header field value + pub value: String, +} + +/// TCPSocket specifies an action involving a TCP port. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersLivenessProbeTcpSocket { + /// Optional: Host name to connect to, defaults to the pod IP. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + /// Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + pub port: IntOrString, +} + +/// ContainerPort represents a network port in a single container. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersPorts { + /// Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. + #[serde(rename = "containerPort")] + pub container_port: i32, + /// What host IP to bind the external port to. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostIP")] + pub host_ip: Option, + /// Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostPort")] + pub host_port: Option, + /// If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub name: Option, + /// Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP". + #[serde(default, skip_serializing_if = "Option::is_none")] + pub protocol: Option, +} + +/// Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersReadinessProbe { + /// Exec specifies the action to take. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + /// GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + /// HTTPGet specifies the http request to perform. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + /// Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + /// How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + /// Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + /// TCPSocket specifies an action involving a TCP port. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + /// Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + /// Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +/// Exec specifies the action to take. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersReadinessProbeExec { + /// Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +/// GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersReadinessProbeGrpc { + /// Port number of the gRPC service. Number must be in the range 1 to 65535. + pub port: i32, + /// Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). + /// If this is not specified, the default behavior is defined by gRPC. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +/// HTTPGet specifies the http request to perform. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersReadinessProbeHttpGet { + /// Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + /// Custom headers to set in the request. HTTP allows repeated headers. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + /// Path to access on the HTTP server. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + /// Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + pub port: IntOrString, + /// Scheme to use for connecting to the host. Defaults to HTTP. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +/// HTTPHeader describes a custom header to be used in HTTP probes +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersReadinessProbeHttpGetHttpHeaders { + /// The header field name + pub name: String, + /// The header field value + pub value: String, +} + +/// TCPSocket specifies an action involving a TCP port. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersReadinessProbeTcpSocket { + /// Optional: Host name to connect to, defaults to the pod IP. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + /// Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + pub port: IntOrString, +} + +/// Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersResources { + /// Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. + /// This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. + /// This field is immutable. It can only be set for containers. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub claims: Option>, + /// Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub limits: Option>, + /// Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + #[serde(default, skip_serializing_if = "Option::is_none")] + pub requests: Option>, +} + +/// ResourceClaim references one entry in PodSpec.ResourceClaims. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersResourcesClaims { + /// Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. + pub name: String, +} + +/// SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersSecurityContext { + /// 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, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersSecurityContextCapabilities { + /// 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, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersSecurityContextSeLinuxOptions { + /// 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, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersSecurityContextSeccompProfile { + /// 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, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersSecurityContextWindowsOptions { + /// 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, +} + +/// StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersStartupProbe { + /// Exec specifies the action to take. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub exec: Option, + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureThreshold")] + pub failure_threshold: Option, + /// GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub grpc: Option, + /// HTTPGet specifies the http request to perform. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpGet")] + pub http_get: Option, + /// Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialDelaySeconds")] + pub initial_delay_seconds: Option, + /// How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "periodSeconds")] + pub period_seconds: Option, + /// Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "successThreshold")] + pub success_threshold: Option, + /// TCPSocket specifies an action involving a TCP port. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "tcpSocket")] + pub tcp_socket: Option, + /// Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "terminationGracePeriodSeconds")] + pub termination_grace_period_seconds: Option, + /// Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] + pub timeout_seconds: Option, +} + +/// Exec specifies the action to take. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersStartupProbeExec { + /// Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub command: Option>, +} + +/// GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersStartupProbeGrpc { + /// Port number of the gRPC service. Number must be in the range 1 to 65535. + pub port: i32, + /// Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). + /// If this is not specified, the default behavior is defined by gRPC. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub service: Option, +} + +/// HTTPGet specifies the http request to perform. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersStartupProbeHttpGet { + /// Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + /// Custom headers to set in the request. HTTP allows repeated headers. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpHeaders")] + pub http_headers: Option>, + /// Path to access on the HTTP server. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub path: Option, + /// Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + pub port: IntOrString, + /// Scheme to use for connecting to the host. Defaults to HTTP. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub scheme: Option, +} + +/// HTTPHeader describes a custom header to be used in HTTP probes +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersStartupProbeHttpGetHttpHeaders { + /// The header field name + pub name: String, + /// The header field value + pub value: String, +} + +/// TCPSocket specifies an action involving a TCP port. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersStartupProbeTcpSocket { + /// Optional: Host name to connect to, defaults to the pod IP. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub host: Option, + /// Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. + pub port: IntOrString, +} + +/// volumeDevice describes a mapping of a raw block device within a container. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersVolumeDevices { + /// devicePath is the path inside of the container that the device will be mapped to. + #[serde(rename = "devicePath")] + pub device_path: String, + /// name must match the name of a persistentVolumeClaim in the pod + pub name: String, +} + +/// VolumeMount describes a mounting of a Volume within a container. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct MattermostPodExtensionsSidecarContainersVolumeMounts { + /// Path within the container at which the volume should be mounted. Must not contain ':'. + #[serde(rename = "mountPath")] + pub mount_path: String, + /// mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "mountPropagation")] + pub mount_propagation: Option, + /// This must match the Name of a Volume. + pub name: String, + /// Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "readOnly")] + pub read_only: Option, + /// Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). + #[serde(default, skip_serializing_if = "Option::is_none", rename = "subPath")] + pub sub_path: Option, + /// Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to "" (volume's root). SubPathExpr and SubPath are mutually exclusive. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "subPathExpr")] + pub sub_path_expr: Option, +} + /// PodTemplate defines configuration for the template for Mattermost pods. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MattermostPodTemplate { diff --git a/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1alpha1/ipaddressclaims.rs b/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1alpha1/ipaddressclaims.rs index 415404401..ca279406f 100644 --- a/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1alpha1/ipaddressclaims.rs +++ b/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1alpha1/ipaddressclaims.rs @@ -20,7 +20,9 @@ pub struct IPAddressClaimSpec { /// PoolRef is a reference to the pool from which an IP address should be created. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct IPAddressClaimPoolRef { - /// APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + /// APIGroup is the group for the resource being referenced. + /// If APIGroup is not specified, the specified Kind must be in the core API group. + /// For any other third-party types, APIGroup is required. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] pub api_group: Option, /// Kind is the type of resource being referenced @@ -43,7 +45,9 @@ pub struct IPAddressClaimStatus { /// AddressRef is a reference to the address that was created for this claim. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct IPAddressClaimStatusAddressRef { - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + /// Name 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, } @@ -51,21 +55,30 @@ pub struct IPAddressClaimStatusAddressRef { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct IPAddressClaimStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } diff --git a/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1alpha1/ipaddresses.rs b/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1alpha1/ipaddresses.rs index be8e19bda..b411f63ae 100644 --- a/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1alpha1/ipaddresses.rs +++ b/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1alpha1/ipaddresses.rs @@ -29,7 +29,9 @@ pub struct IPAddressSpec { /// ClaimRef is a reference to the claim this IPAddress was created for. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct IPAddressClaimRef { - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + /// Name 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, } @@ -37,7 +39,9 @@ pub struct IPAddressClaimRef { /// PoolRef is a reference to the pool that this IPAddress was created from. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct IPAddressPoolRef { - /// APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + /// APIGroup is the group for the resource being referenced. + /// If APIGroup is not specified, the specified Kind must be in the core API group. + /// For any other third-party types, APIGroup is required. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] pub api_group: Option, /// Kind is the type of resource being referenced diff --git a/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1beta1/ipaddressclaims.rs b/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1beta1/ipaddressclaims.rs index ad569c32b..c706260fe 100644 --- a/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1beta1/ipaddressclaims.rs +++ b/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1beta1/ipaddressclaims.rs @@ -20,7 +20,9 @@ pub struct IPAddressClaimSpec { /// PoolRef is a reference to the pool from which an IP address should be created. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct IPAddressClaimPoolRef { - /// APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + /// APIGroup is the group for the resource being referenced. + /// If APIGroup is not specified, the specified Kind must be in the core API group. + /// For any other third-party types, APIGroup is required. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] pub api_group: Option, /// Kind is the type of resource being referenced @@ -43,7 +45,9 @@ pub struct IPAddressClaimStatus { /// AddressRef is a reference to the address that was created for this claim. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct IPAddressClaimStatusAddressRef { - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + /// Name 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, } @@ -51,21 +55,30 @@ pub struct IPAddressClaimStatusAddressRef { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct IPAddressClaimStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } diff --git a/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1beta1/ipaddresses.rs b/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1beta1/ipaddresses.rs index 90714e67d..15a89f149 100644 --- a/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1beta1/ipaddresses.rs +++ b/kube-custom-resources-rs/src/ipam_cluster_x_k8s_io/v1beta1/ipaddresses.rs @@ -29,7 +29,9 @@ pub struct IPAddressSpec { /// ClaimRef is a reference to the claim this IPAddress was created for. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct IPAddressClaimRef { - /// Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? + /// Name 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, } @@ -37,7 +39,9 @@ pub struct IPAddressClaimRef { /// PoolRef is a reference to the pool that this IPAddress was created from. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct IPAddressPoolRef { - /// APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. + /// APIGroup is the group for the resource being referenced. + /// If APIGroup is not specified, the specified Kind must be in the core API group. + /// For any other third-party types, APIGroup is required. #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiGroup")] pub api_group: Option, /// Kind is the type of resource being referenced diff --git a/kube-custom-resources-rs/src/k8s_nginx_org/v1/policies.rs b/kube-custom-resources-rs/src/k8s_nginx_org/v1/policies.rs index ac7a15ce4..12ddaeb51 100644 --- a/kube-custom-resources-rs/src/k8s_nginx_org/v1/policies.rs +++ b/kube-custom-resources-rs/src/k8s_nginx_org/v1/policies.rs @@ -5,7 +5,9 @@ use kube::CustomResource; use serde::{Serialize, Deserialize}; -/// PolicySpec is the spec of the Policy resource. The spec includes multiple fields, where each field represents a different policy. Only one policy (field) is allowed. +/// PolicySpec is the spec of the Policy resource. +/// The spec includes multiple fields, where each field represents a different policy. +/// Only one policy (field) is allowed. #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] #[kube(group = "k8s.nginx.org", version = "v1", kind = "Policy", plural = "policies")] #[kube(namespaced)] @@ -15,7 +17,8 @@ pub struct PolicySpec { /// AccessControl defines an access policy based on the source IP of a request. #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessControl")] pub access_control: Option, - /// BasicAuth holds HTTP Basic authentication configuration policy status: preview + /// BasicAuth holds HTTP Basic authentication configuration + /// policy status: preview #[serde(default, skip_serializing_if = "Option::is_none", rename = "basicAuth")] pub basic_auth: Option, /// EgressMTLS defines an Egress MTLS policy. @@ -49,7 +52,8 @@ pub struct PolicyAccessControl { pub deny: Option>, } -/// BasicAuth holds HTTP Basic authentication configuration policy status: preview +/// BasicAuth holds HTTP Basic authentication configuration +/// policy status: preview #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct PolicyBasicAuth { #[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 afaa4fce9..f854abdf0 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 @@ -63,7 +63,8 @@ pub struct VirtualServerExternalDns { pub record_type: Option, } -/// ProviderSpecificProperty defines specific property for using with ExternalDNS sub-resource. +/// ProviderSpecificProperty defines specific property +/// for using with ExternalDNS sub-resource. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct VirtualServerExternalDnsProviderSpecific { /// Name of the property diff --git a/kube-custom-resources-rs/src/k8s_nginx_org/v1alpha1/policies.rs b/kube-custom-resources-rs/src/k8s_nginx_org/v1alpha1/policies.rs index 910f4a7e5..f8192f002 100644 --- a/kube-custom-resources-rs/src/k8s_nginx_org/v1alpha1/policies.rs +++ b/kube-custom-resources-rs/src/k8s_nginx_org/v1alpha1/policies.rs @@ -5,7 +5,9 @@ use kube::CustomResource; use serde::{Serialize, Deserialize}; -/// PolicySpec is the spec of the Policy resource. The spec includes multiple fields, where each field represents a different policy. Only one policy (field) is allowed. +/// PolicySpec is the spec of the Policy resource. +/// The spec includes multiple fields, where each field represents a different policy. +/// Only one policy (field) is allowed. #[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)] #[kube(group = "k8s.nginx.org", version = "v1alpha1", kind = "Policy", plural = "policies")] #[kube(namespaced)] diff --git a/kube-custom-resources-rs/src/keda_sh/v1alpha1/clustertriggerauthentications.rs b/kube-custom-resources-rs/src/keda_sh/v1alpha1/clustertriggerauthentications.rs index af4d66cb0..f1d7fdd31 100644 --- a/kube-custom-resources-rs/src/keda_sh/v1alpha1/clustertriggerauthentications.rs +++ b/kube-custom-resources-rs/src/keda_sh/v1alpha1/clustertriggerauthentications.rs @@ -11,6 +11,9 @@ use serde::{Serialize, Deserialize}; #[kube(status = "ClusterTriggerAuthenticationStatus")] #[kube(schema = "disabled")] pub struct ClusterTriggerAuthenticationSpec { + /// AwsSecretManager is used to authenticate using AwsSecretManager + #[serde(default, skip_serializing_if = "Option::is_none", rename = "awsSecretManager")] + pub aws_secret_manager: Option, /// AzureKeyVault is used to authenticate using Azure Key Vault #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureKeyVault")] pub azure_key_vault: Option, @@ -18,6 +21,8 @@ pub struct ClusterTriggerAuthenticationSpec { pub config_map_target_ref: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] pub env: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gcpSecretManager")] + pub gcp_secret_manager: Option, /// HashiCorpVault is used to authenticate using Hashicorp Vault #[serde(default, skip_serializing_if = "Option::is_none", rename = "hashiCorpVault")] pub hashi_corp_vault: Option, @@ -28,6 +33,134 @@ pub struct ClusterTriggerAuthenticationSpec { pub secret_target_ref: Option>, } +/// AwsSecretManager is used to authenticate using AwsSecretManager +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationAwsSecretManager { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub credentials: Option, + /// AuthPodIdentity allows users to select the platform native identity mechanism + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podIdentity")] + pub pod_identity: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub region: Option, + pub secrets: Vec, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationAwsSecretManagerCredentials { + #[serde(rename = "accessKey")] + pub access_key: ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessKey, + #[serde(rename = "accessSecretKey")] + pub access_secret_key: ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessSecretKey, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessToken")] + pub access_token: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessKey { + #[serde(rename = "valueFrom")] + pub value_from: ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessKeyValueFrom, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessKeyValueFrom { + #[serde(rename = "secretKeyRef")] + pub secret_key_ref: ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessKeyValueFromSecretKeyRef, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessKeyValueFromSecretKeyRef { + pub key: String, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessSecretKey { + #[serde(rename = "valueFrom")] + pub value_from: ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessSecretKeyValueFrom, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessSecretKeyValueFrom { + #[serde(rename = "secretKeyRef")] + pub secret_key_ref: ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessSecretKeyValueFromSecretKeyRef, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessSecretKeyValueFromSecretKeyRef { + pub key: String, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessToken { + #[serde(rename = "valueFrom")] + pub value_from: ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessTokenValueFrom, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessTokenValueFrom { + #[serde(rename = "secretKeyRef")] + pub secret_key_ref: ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessTokenValueFromSecretKeyRef, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationAwsSecretManagerCredentialsAccessTokenValueFromSecretKeyRef { + pub key: String, + pub name: String, +} + +/// AuthPodIdentity allows users to select the platform native identity mechanism +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationAwsSecretManagerPodIdentity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "identityId")] + pub identity_id: Option, + /// IdentityOwner configures which identity has to be used during auto discovery, keda or the scaled workload. Mutually exclusive with roleArn + #[serde(default, skip_serializing_if = "Option::is_none", rename = "identityOwner")] + pub identity_owner: Option, + /// PodIdentityProvider contains the list of providers + pub provider: ClusterTriggerAuthenticationAwsSecretManagerPodIdentityProvider, + /// RoleArn sets the AWS RoleArn to be used. Mutually exclusive with IdentityOwner + #[serde(default, skip_serializing_if = "Option::is_none", rename = "roleArn")] + pub role_arn: Option, +} + +/// AuthPodIdentity allows users to select the platform native identity mechanism +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum ClusterTriggerAuthenticationAwsSecretManagerPodIdentityIdentityOwner { + #[serde(rename = "keda")] + Keda, + #[serde(rename = "workload")] + Workload, +} + +/// AuthPodIdentity allows users to select the platform native identity mechanism +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum ClusterTriggerAuthenticationAwsSecretManagerPodIdentityProvider { + #[serde(rename = "azure")] + Azure, + #[serde(rename = "azure-workload")] + AzureWorkload, + #[serde(rename = "gcp")] + Gcp, + #[serde(rename = "aws")] + Aws, + #[serde(rename = "aws-eks")] + AwsEks, + #[serde(rename = "aws-kiam")] + AwsKiam, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationAwsSecretManagerSecrets { + pub name: String, + pub parameter: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "versionId")] + pub version_id: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "versionStage")] + pub version_stage: Option, +} + /// AzureKeyVault is used to authenticate using Azure Key Vault #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTriggerAuthenticationAzureKeyVault { @@ -147,6 +280,89 @@ pub struct ClusterTriggerAuthenticationEnv { pub parameter: String, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationGcpSecretManager { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub credentials: Option, + /// AuthPodIdentity allows users to select the platform native identity mechanism + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podIdentity")] + pub pod_identity: Option, + pub secrets: Vec, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationGcpSecretManagerCredentials { + #[serde(rename = "clientSecret")] + pub client_secret: ClusterTriggerAuthenticationGcpSecretManagerCredentialsClientSecret, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationGcpSecretManagerCredentialsClientSecret { + #[serde(rename = "valueFrom")] + pub value_from: ClusterTriggerAuthenticationGcpSecretManagerCredentialsClientSecretValueFrom, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationGcpSecretManagerCredentialsClientSecretValueFrom { + #[serde(rename = "secretKeyRef")] + pub secret_key_ref: ClusterTriggerAuthenticationGcpSecretManagerCredentialsClientSecretValueFromSecretKeyRef, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationGcpSecretManagerCredentialsClientSecretValueFromSecretKeyRef { + pub key: String, + pub name: String, +} + +/// AuthPodIdentity allows users to select the platform native identity mechanism +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationGcpSecretManagerPodIdentity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "identityId")] + pub identity_id: Option, + /// IdentityOwner configures which identity has to be used during auto discovery, keda or the scaled workload. Mutually exclusive with roleArn + #[serde(default, skip_serializing_if = "Option::is_none", rename = "identityOwner")] + pub identity_owner: Option, + /// PodIdentityProvider contains the list of providers + pub provider: ClusterTriggerAuthenticationGcpSecretManagerPodIdentityProvider, + /// RoleArn sets the AWS RoleArn to be used. Mutually exclusive with IdentityOwner + #[serde(default, skip_serializing_if = "Option::is_none", rename = "roleArn")] + pub role_arn: Option, +} + +/// AuthPodIdentity allows users to select the platform native identity mechanism +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum ClusterTriggerAuthenticationGcpSecretManagerPodIdentityIdentityOwner { + #[serde(rename = "keda")] + Keda, + #[serde(rename = "workload")] + Workload, +} + +/// AuthPodIdentity allows users to select the platform native identity mechanism +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum ClusterTriggerAuthenticationGcpSecretManagerPodIdentityProvider { + #[serde(rename = "azure")] + Azure, + #[serde(rename = "azure-workload")] + AzureWorkload, + #[serde(rename = "gcp")] + Gcp, + #[serde(rename = "aws")] + Aws, + #[serde(rename = "aws-eks")] + AwsEks, + #[serde(rename = "aws-kiam")] + AwsKiam, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct ClusterTriggerAuthenticationGcpSecretManagerSecrets { + pub id: String, + pub parameter: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub version: Option, +} + /// HashiCorpVault is used to authenticate using Hashicorp Vault #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ClusterTriggerAuthenticationHashiCorpVault { diff --git a/kube-custom-resources-rs/src/keda_sh/v1alpha1/triggerauthentications.rs b/kube-custom-resources-rs/src/keda_sh/v1alpha1/triggerauthentications.rs index 9ef3435b0..e8537ba12 100644 --- a/kube-custom-resources-rs/src/keda_sh/v1alpha1/triggerauthentications.rs +++ b/kube-custom-resources-rs/src/keda_sh/v1alpha1/triggerauthentications.rs @@ -12,6 +12,9 @@ use serde::{Serialize, Deserialize}; #[kube(status = "TriggerAuthenticationStatus")] #[kube(schema = "disabled")] pub struct TriggerAuthenticationSpec { + /// AwsSecretManager is used to authenticate using AwsSecretManager + #[serde(default, skip_serializing_if = "Option::is_none", rename = "awsSecretManager")] + pub aws_secret_manager: Option, /// AzureKeyVault is used to authenticate using Azure Key Vault #[serde(default, skip_serializing_if = "Option::is_none", rename = "azureKeyVault")] pub azure_key_vault: Option, @@ -19,6 +22,8 @@ pub struct TriggerAuthenticationSpec { pub config_map_target_ref: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] pub env: Option>, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "gcpSecretManager")] + pub gcp_secret_manager: Option, /// HashiCorpVault is used to authenticate using Hashicorp Vault #[serde(default, skip_serializing_if = "Option::is_none", rename = "hashiCorpVault")] pub hashi_corp_vault: Option, @@ -29,6 +34,134 @@ pub struct TriggerAuthenticationSpec { pub secret_target_ref: Option>, } +/// AwsSecretManager is used to authenticate using AwsSecretManager +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationAwsSecretManager { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub credentials: Option, + /// AuthPodIdentity allows users to select the platform native identity mechanism + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podIdentity")] + pub pod_identity: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub region: Option, + pub secrets: Vec, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationAwsSecretManagerCredentials { + #[serde(rename = "accessKey")] + pub access_key: TriggerAuthenticationAwsSecretManagerCredentialsAccessKey, + #[serde(rename = "accessSecretKey")] + pub access_secret_key: TriggerAuthenticationAwsSecretManagerCredentialsAccessSecretKey, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "accessToken")] + pub access_token: Option, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationAwsSecretManagerCredentialsAccessKey { + #[serde(rename = "valueFrom")] + pub value_from: TriggerAuthenticationAwsSecretManagerCredentialsAccessKeyValueFrom, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationAwsSecretManagerCredentialsAccessKeyValueFrom { + #[serde(rename = "secretKeyRef")] + pub secret_key_ref: TriggerAuthenticationAwsSecretManagerCredentialsAccessKeyValueFromSecretKeyRef, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationAwsSecretManagerCredentialsAccessKeyValueFromSecretKeyRef { + pub key: String, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationAwsSecretManagerCredentialsAccessSecretKey { + #[serde(rename = "valueFrom")] + pub value_from: TriggerAuthenticationAwsSecretManagerCredentialsAccessSecretKeyValueFrom, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationAwsSecretManagerCredentialsAccessSecretKeyValueFrom { + #[serde(rename = "secretKeyRef")] + pub secret_key_ref: TriggerAuthenticationAwsSecretManagerCredentialsAccessSecretKeyValueFromSecretKeyRef, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationAwsSecretManagerCredentialsAccessSecretKeyValueFromSecretKeyRef { + pub key: String, + pub name: String, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationAwsSecretManagerCredentialsAccessToken { + #[serde(rename = "valueFrom")] + pub value_from: TriggerAuthenticationAwsSecretManagerCredentialsAccessTokenValueFrom, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationAwsSecretManagerCredentialsAccessTokenValueFrom { + #[serde(rename = "secretKeyRef")] + pub secret_key_ref: TriggerAuthenticationAwsSecretManagerCredentialsAccessTokenValueFromSecretKeyRef, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationAwsSecretManagerCredentialsAccessTokenValueFromSecretKeyRef { + pub key: String, + pub name: String, +} + +/// AuthPodIdentity allows users to select the platform native identity mechanism +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationAwsSecretManagerPodIdentity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "identityId")] + pub identity_id: Option, + /// IdentityOwner configures which identity has to be used during auto discovery, keda or the scaled workload. Mutually exclusive with roleArn + #[serde(default, skip_serializing_if = "Option::is_none", rename = "identityOwner")] + pub identity_owner: Option, + /// PodIdentityProvider contains the list of providers + pub provider: TriggerAuthenticationAwsSecretManagerPodIdentityProvider, + /// RoleArn sets the AWS RoleArn to be used. Mutually exclusive with IdentityOwner + #[serde(default, skip_serializing_if = "Option::is_none", rename = "roleArn")] + pub role_arn: Option, +} + +/// AuthPodIdentity allows users to select the platform native identity mechanism +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum TriggerAuthenticationAwsSecretManagerPodIdentityIdentityOwner { + #[serde(rename = "keda")] + Keda, + #[serde(rename = "workload")] + Workload, +} + +/// AuthPodIdentity allows users to select the platform native identity mechanism +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum TriggerAuthenticationAwsSecretManagerPodIdentityProvider { + #[serde(rename = "azure")] + Azure, + #[serde(rename = "azure-workload")] + AzureWorkload, + #[serde(rename = "gcp")] + Gcp, + #[serde(rename = "aws")] + Aws, + #[serde(rename = "aws-eks")] + AwsEks, + #[serde(rename = "aws-kiam")] + AwsKiam, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationAwsSecretManagerSecrets { + pub name: String, + pub parameter: String, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "versionId")] + pub version_id: Option, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "versionStage")] + pub version_stage: Option, +} + /// AzureKeyVault is used to authenticate using Azure Key Vault #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TriggerAuthenticationAzureKeyVault { @@ -148,6 +281,89 @@ pub struct TriggerAuthenticationEnv { pub parameter: String, } +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationGcpSecretManager { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub credentials: Option, + /// AuthPodIdentity allows users to select the platform native identity mechanism + #[serde(default, skip_serializing_if = "Option::is_none", rename = "podIdentity")] + pub pod_identity: Option, + pub secrets: Vec, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationGcpSecretManagerCredentials { + #[serde(rename = "clientSecret")] + pub client_secret: TriggerAuthenticationGcpSecretManagerCredentialsClientSecret, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationGcpSecretManagerCredentialsClientSecret { + #[serde(rename = "valueFrom")] + pub value_from: TriggerAuthenticationGcpSecretManagerCredentialsClientSecretValueFrom, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationGcpSecretManagerCredentialsClientSecretValueFrom { + #[serde(rename = "secretKeyRef")] + pub secret_key_ref: TriggerAuthenticationGcpSecretManagerCredentialsClientSecretValueFromSecretKeyRef, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationGcpSecretManagerCredentialsClientSecretValueFromSecretKeyRef { + pub key: String, + pub name: String, +} + +/// AuthPodIdentity allows users to select the platform native identity mechanism +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationGcpSecretManagerPodIdentity { + #[serde(default, skip_serializing_if = "Option::is_none", rename = "identityId")] + pub identity_id: Option, + /// IdentityOwner configures which identity has to be used during auto discovery, keda or the scaled workload. Mutually exclusive with roleArn + #[serde(default, skip_serializing_if = "Option::is_none", rename = "identityOwner")] + pub identity_owner: Option, + /// PodIdentityProvider contains the list of providers + pub provider: TriggerAuthenticationGcpSecretManagerPodIdentityProvider, + /// RoleArn sets the AWS RoleArn to be used. Mutually exclusive with IdentityOwner + #[serde(default, skip_serializing_if = "Option::is_none", rename = "roleArn")] + pub role_arn: Option, +} + +/// AuthPodIdentity allows users to select the platform native identity mechanism +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum TriggerAuthenticationGcpSecretManagerPodIdentityIdentityOwner { + #[serde(rename = "keda")] + Keda, + #[serde(rename = "workload")] + Workload, +} + +/// AuthPodIdentity allows users to select the platform native identity mechanism +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub enum TriggerAuthenticationGcpSecretManagerPodIdentityProvider { + #[serde(rename = "azure")] + Azure, + #[serde(rename = "azure-workload")] + AzureWorkload, + #[serde(rename = "gcp")] + Gcp, + #[serde(rename = "aws")] + Aws, + #[serde(rename = "aws-eks")] + AwsEks, + #[serde(rename = "aws-kiam")] + AwsKiam, +} + +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct TriggerAuthenticationGcpSecretManagerSecrets { + pub id: String, + pub parameter: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub version: Option, +} + /// HashiCorpVault is used to authenticate using Hashicorp Vault #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct TriggerAuthenticationHashiCorpVault { diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/containerpatches.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/containerpatches.rs index b94776b15..fc3bf8d8e 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/containerpatches.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/containerpatches.rs @@ -29,7 +29,8 @@ pub struct ContainerPatchInitPatch { pub op: ContainerPatchInitPatchOp, /// Path is a jsonpatch path string. pub path: String, - /// Value must be a string representing a valid json object used by replace and add operations. String has to be escaped with " to be valid a json object. + /// Value must be a string representing a valid json object used + /// by replace and add operations. String has to be escaped with " to be valid a json object. #[serde(default, skip_serializing_if = "Option::is_none")] pub value: Option, } @@ -59,7 +60,8 @@ pub struct ContainerPatchSidecarPatch { pub op: ContainerPatchSidecarPatchOp, /// Path is a jsonpatch path string. pub path: String, - /// Value must be a string representing a valid json object used by replace and add operations. String has to be escaped with " to be valid a json object. + /// Value must be a string representing a valid json object used + /// by replace and add operations. String has to be escaped with " to be valid a json object. #[serde(default, skip_serializing_if = "Option::is_none")] pub value: Option, } diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshaccesslogs.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshaccesslogs.rs index fb6074b51..98cc289b5 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshaccesslogs.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshaccesslogs.rs @@ -16,7 +16,9 @@ pub struct MeshAccessLogSpec { /// From list makes a match between clients and corresponding configurations #[serde(default, skip_serializing_if = "Option::is_none")] pub from: Option>, - /// 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 in-place. + /// 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 in-place. #[serde(rename = "targetRef")] pub target_ref: MeshAccessLogTargetRef, /// To list makes a match between the consumed services and corresponding configurations @@ -26,15 +28,18 @@ pub struct MeshAccessLogSpec { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogFrom { - /// Default is a configuration specific to the group of clients referenced in 'targetRef' + /// Default is a configuration specific to the group of clients 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 clients. + /// TargetRef is a reference to the resource that represents a group of + /// clients. #[serde(rename = "targetRef")] pub target_ref: MeshAccessLogFromTargetRef, } -/// Default is a configuration specific to the group of clients referenced in 'targetRef' +/// Default is a configuration specific to the group of clients referenced in +/// 'targetRef' #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogFromDefault { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -59,14 +64,16 @@ pub struct MeshAccessLogFromDefaultBackends { /// FileBackend defines configuration for file based access logs #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogFromDefaultBackendsFile { - /// Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + /// Format of access logs. Placeholders available on + /// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, /// Path to a file that logs will be written to pub path: String, } -/// Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators +/// Format of access logs. Placeholders available on +/// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogFromDefaultBackendsFileFormat { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -87,7 +94,8 @@ pub struct MeshAccessLogFromDefaultBackendsFileFormatJson { pub value: Option, } -/// Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators +/// Format of access logs. Placeholders available on +/// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshAccessLogFromDefaultBackendsFileFormatType { Plain, @@ -97,10 +105,14 @@ pub enum MeshAccessLogFromDefaultBackendsFileFormatType { /// Defines an OpenTelemetry logging backend. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogFromDefaultBackendsOpenTelemetry { - /// Attributes can contain placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + /// Attributes can contain placeholders available on + /// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[serde(default, skip_serializing_if = "Option::is_none")] pub attributes: Option>, - /// Body is a raw string or an OTLP any value as described at https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-body It can contain placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + /// Body is a raw string or an OTLP any value as described at + /// https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-body + /// It can contain placeholders available on + /// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[serde(default, skip_serializing_if = "Option::is_none")] pub body: Option>, /// Endpoint of OpenTelemetry collector. An empty port defaults to 4317. @@ -120,12 +132,14 @@ pub struct MeshAccessLogFromDefaultBackendsOpenTelemetryAttributes { pub struct MeshAccessLogFromDefaultBackendsTcp { /// Address of the TCP logging backend pub address: String, - /// Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + /// Format of access logs. Placeholders available on + /// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, } -/// Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators +/// Format of access logs. Placeholders available on +/// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogFromDefaultBackendsTcpFormat { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -146,7 +160,8 @@ pub struct MeshAccessLogFromDefaultBackendsTcpFormatJson { pub value: Option, } -/// Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators +/// Format of access logs. Placeholders available on +/// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshAccessLogFromDefaultBackendsTcpFormatType { Plain, @@ -160,7 +175,8 @@ pub enum MeshAccessLogFromDefaultBackendsType { OpenTelemetry, } -/// TargetRef is a reference to the resource that represents a group of clients. +/// TargetRef is a reference to the resource that represents a group of +/// clients. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogFromTargetRef { /// Kind of the referenced resource @@ -169,15 +185,22 @@ pub struct MeshAccessLogFromTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 clients. +/// TargetRef is a reference to the resource that represents a group of +/// clients. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshAccessLogFromTargetRefKind { Mesh, @@ -189,7 +212,9 @@ pub enum MeshAccessLogFromTargetRefKind { MeshHttpRoute, } -/// 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 in-place. +/// 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 in-place. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogTargetRef { /// Kind of the referenced resource @@ -198,15 +223,23 @@ pub struct MeshAccessLogTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 the policy takes an effect on. The resource could be either a real store object or virtual resource defined in-place. +/// 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 in-place. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshAccessLogTargetRefKind { Mesh, @@ -220,15 +253,18 @@ pub enum MeshAccessLogTargetRefKind { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogTo { - /// Default is a configuration specific to the group of destinations referenced in 'targetRef' + /// 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. + /// TargetRef is a reference to the resource that represents a group of + /// destinations. #[serde(rename = "targetRef")] pub target_ref: MeshAccessLogToTargetRef, } -/// Default is a configuration specific to the group of destinations referenced in 'targetRef' +/// Default is a configuration specific to the group of destinations referenced in +/// 'targetRef' #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogToDefault { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -253,14 +289,16 @@ pub struct MeshAccessLogToDefaultBackends { /// FileBackend defines configuration for file based access logs #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogToDefaultBackendsFile { - /// Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + /// Format of access logs. Placeholders available on + /// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, /// Path to a file that logs will be written to pub path: String, } -/// Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators +/// Format of access logs. Placeholders available on +/// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogToDefaultBackendsFileFormat { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -281,7 +319,8 @@ pub struct MeshAccessLogToDefaultBackendsFileFormatJson { pub value: Option, } -/// Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators +/// Format of access logs. Placeholders available on +/// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshAccessLogToDefaultBackendsFileFormatType { Plain, @@ -291,10 +330,14 @@ pub enum MeshAccessLogToDefaultBackendsFileFormatType { /// Defines an OpenTelemetry logging backend. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogToDefaultBackendsOpenTelemetry { - /// Attributes can contain placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + /// Attributes can contain placeholders available on + /// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[serde(default, skip_serializing_if = "Option::is_none")] pub attributes: Option>, - /// Body is a raw string or an OTLP any value as described at https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-body It can contain placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + /// Body is a raw string or an OTLP any value as described at + /// https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-body + /// It can contain placeholders available on + /// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[serde(default, skip_serializing_if = "Option::is_none")] pub body: Option>, /// Endpoint of OpenTelemetry collector. An empty port defaults to 4317. @@ -314,12 +357,14 @@ pub struct MeshAccessLogToDefaultBackendsOpenTelemetryAttributes { pub struct MeshAccessLogToDefaultBackendsTcp { /// Address of the TCP logging backend pub address: String, - /// Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + /// Format of access logs. Placeholders available on + /// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[serde(default, skip_serializing_if = "Option::is_none")] pub format: Option, } -/// Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators +/// Format of access logs. Placeholders available on +/// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogToDefaultBackendsTcpFormat { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -340,7 +385,8 @@ pub struct MeshAccessLogToDefaultBackendsTcpFormatJson { pub value: Option, } -/// Format of access logs. Placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators +/// Format of access logs. Placeholders available on +/// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshAccessLogToDefaultBackendsTcpFormatType { Plain, @@ -354,7 +400,8 @@ pub enum MeshAccessLogToDefaultBackendsType { OpenTelemetry, } -/// TargetRef is a reference to the resource that represents a group of destinations. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshAccessLogToTargetRef { /// Kind of the referenced resource @@ -363,15 +410,22 @@ pub struct MeshAccessLogToTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshAccessLogToTargetRefKind { Mesh, diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshcircuitbreakers.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshcircuitbreakers.rs index 8a76b8ea1..bd4146aae 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshcircuitbreakers.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshcircuitbreakers.rs @@ -16,59 +16,90 @@ pub struct MeshCircuitBreakerSpec { /// From list makes a match between clients and corresponding configurations #[serde(default, skip_serializing_if = "Option::is_none")] pub from: Option>, - /// 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 in place. + /// 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 in place. #[serde(rename = "targetRef")] pub target_ref: MeshCircuitBreakerTargetRef, - /// To list makes a match between the consumed services and corresponding configurations + /// To list makes a match between the consumed services and corresponding + /// configurations #[serde(default, skip_serializing_if = "Option::is_none")] pub to: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerFrom { - /// Default is a configuration specific to the group of destinations referenced in 'targetRef' + /// 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. + /// TargetRef is a reference to the resource that represents a group of + /// destinations. #[serde(rename = "targetRef")] pub target_ref: MeshCircuitBreakerFromTargetRef, } -/// Default is a configuration specific to the group of destinations referenced in 'targetRef' +/// Default is a configuration specific to the group of destinations +/// referenced in 'targetRef' #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerFromDefault { - /// ConnectionLimits contains configuration of each circuit breaking limit, which when exceeded makes the circuit breaker to become open (no traffic is allowed like no current is allowed in the circuits when physical circuit breaker ir open) + /// ConnectionLimits contains configuration of each circuit breaking limit, + /// which when exceeded makes the circuit breaker to become open (no traffic + /// is allowed like no current is allowed in the circuits when physical + /// circuit breaker ir open) #[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionLimits")] pub connection_limits: Option, - /// OutlierDetection contains the configuration of the process of dynamically determining whether some number of hosts in an upstream cluster are performing unlike the others and removing them from the healthy load balancing set. Performance might be along different axes such as consecutive failures, temporal success rate, temporal latency, etc. Outlier detection is a form of passive health checking. + /// OutlierDetection contains the configuration of the process of dynamically + /// determining whether some number of hosts in an upstream cluster are + /// performing unlike the others and removing them from the healthy load + /// balancing set. Performance might be along different axes such as + /// consecutive failures, temporal success rate, temporal latency, etc. + /// Outlier detection is a form of passive health checking. #[serde(default, skip_serializing_if = "Option::is_none", rename = "outlierDetection")] pub outlier_detection: Option, } -/// ConnectionLimits contains configuration of each circuit breaking limit, which when exceeded makes the circuit breaker to become open (no traffic is allowed like no current is allowed in the circuits when physical circuit breaker ir open) +/// ConnectionLimits contains configuration of each circuit breaking limit, +/// which when exceeded makes the circuit breaker to become open (no traffic +/// is allowed like no current is allowed in the circuits when physical +/// circuit breaker ir open) #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerFromDefaultConnectionLimits { - /// The maximum number of connection pools per cluster that are concurrently supported at once. Set this for clusters which create a large number of connection pools. + /// The maximum number of connection pools per cluster that are concurrently + /// supported at once. Set this for clusters which create a large number of + /// connection pools. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxConnectionPools")] pub max_connection_pools: Option, - /// The maximum number of connections allowed to be made to the upstream cluster. + /// The maximum number of connections allowed to be made to the upstream + /// cluster. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxConnections")] pub max_connections: Option, - /// The maximum number of pending requests that are allowed to the upstream cluster. This limit is applied as a connection limit for non-HTTP traffic. + /// The maximum number of pending requests that are allowed to the upstream + /// cluster. This limit is applied as a connection limit for non-HTTP + /// traffic. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxPendingRequests")] pub max_pending_requests: Option, - /// The maximum number of parallel requests that are allowed to be made to the upstream cluster. This limit does not apply to non-HTTP traffic. + /// The maximum number of parallel requests that are allowed to be made + /// to the upstream cluster. This limit does not apply to non-HTTP traffic. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxRequests")] pub max_requests: Option, - /// The maximum number of parallel retries that will be allowed to the upstream cluster. + /// The maximum number of parallel retries that will be allowed to + /// the upstream cluster. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxRetries")] pub max_retries: Option, } -/// OutlierDetection contains the configuration of the process of dynamically determining whether some number of hosts in an upstream cluster are performing unlike the others and removing them from the healthy load balancing set. Performance might be along different axes such as consecutive failures, temporal success rate, temporal latency, etc. Outlier detection is a form of passive health checking. +/// OutlierDetection contains the configuration of the process of dynamically +/// determining whether some number of hosts in an upstream cluster are +/// performing unlike the others and removing them from the healthy load +/// balancing set. Performance might be along different axes such as +/// consecutive failures, temporal success rate, temporal latency, etc. +/// Outlier detection is a form of passive health checking. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerFromDefaultOutlierDetection { - /// The base time that a host is ejected for. The real time is equal to the base time multiplied by the number of times the host has been ejected. + /// The base time that a host is ejected for. The real time is equal to + /// the base time multiplied by the number of times the host has been + /// ejected. #[serde(default, skip_serializing_if = "Option::is_none", rename = "baseEjectionTime")] pub base_ejection_time: Option, /// Contains configuration for supported outlier detectors @@ -77,13 +108,18 @@ pub struct MeshCircuitBreakerFromDefaultOutlierDetection { /// When set to true, outlierDetection configuration won't take any effect #[serde(default, skip_serializing_if = "Option::is_none")] pub disabled: Option, - /// The time interval between ejection analysis sweeps. This can result in both new ejections and hosts being returned to service. + /// The time interval between ejection analysis sweeps. This can result in + /// both new ejections and hosts being returned to service. #[serde(default, skip_serializing_if = "Option::is_none")] pub interval: Option, - /// The maximum % of an upstream cluster that can be ejected due to outlier detection. Defaults to 10% but will eject at least one host regardless of the value. + /// The maximum % of an upstream cluster that can be ejected due to outlier + /// detection. Defaults to 10% but will eject at least one host regardless of + /// the value. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxEjectionPercent")] pub max_ejection_percent: Option, - /// Determines whether to distinguish local origin failures from external errors. If set to true the following configuration parameters are taken into account: detectors.localOriginFailures.consecutive + /// Determines whether to distinguish local origin failures from external + /// errors. If set to true the following configuration parameters are taken + /// into account: detectors.localOriginFailures.consecutive #[serde(default, skip_serializing_if = "Option::is_none", rename = "splitExternalAndLocalErrors")] pub split_external_and_local_errors: Option, } @@ -91,76 +127,206 @@ pub struct MeshCircuitBreakerFromDefaultOutlierDetection { /// Contains configuration for supported outlier detectors #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerFromDefaultOutlierDetectionDetectors { - /// Failure Percentage based outlier detection functions similarly to success rate detection, in that it relies on success rate data from each host in a cluster. However, rather than compare those values to the mean success rate of the cluster as a whole, they are compared to a flat user-configured threshold. This threshold is configured via the outlierDetection.failurePercentageThreshold field. The other configuration fields for failure percentage based detection are similar to the fields for success rate detection. As with success rate detection, detection will not be performed for a host if its request volume over the aggregation interval is less than the outlierDetection.detectors.failurePercentage.requestVolume value. Detection also will not be performed for a cluster if the number of hosts with the minimum required request volume in an interval is less than the outlierDetection.detectors.failurePercentage.minimumHosts value. + /// Failure Percentage based outlier detection functions similarly to success + /// rate detection, in that it relies on success rate data from each host in + /// a cluster. However, rather than compare those values to the mean success + /// rate of the cluster as a whole, they are compared to a flat + /// user-configured threshold. This threshold is configured via the + /// outlierDetection.failurePercentageThreshold field. + /// The other configuration fields for failure percentage based detection are + /// similar to the fields for success rate detection. As with success rate + /// detection, detection will not be performed for a host if its request + /// volume over the aggregation interval is less than the + /// outlierDetection.detectors.failurePercentage.requestVolume value. + /// Detection also will not be performed for a cluster if the number of hosts + /// with the minimum required request volume in an interval is less than the + /// outlierDetection.detectors.failurePercentage.minimumHosts value. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failurePercentage")] pub failure_percentage: Option, - /// In the default mode (outlierDetection.splitExternalLocalOriginErrors is false) this detection type takes into account a subset of 5xx errors, called "gateway errors" (502, 503 or 504 status code) and local origin failures, such as timeout, TCP reset etc. In split mode (outlierDetection.splitExternalLocalOriginErrors is true) this detection type takes into account a subset of 5xx errors, called "gateway errors" (502, 503 or 504 status code) and is supported only by the http router. + /// In the default mode (outlierDetection.splitExternalLocalOriginErrors is + /// false) this detection type takes into account a subset of 5xx errors, + /// called "gateway errors" (502, 503 or 504 status code) and local origin + /// failures, such as timeout, TCP reset etc. + /// In split mode (outlierDetection.splitExternalLocalOriginErrors is true) + /// this detection type takes into account a subset of 5xx errors, called + /// "gateway errors" (502, 503 or 504 status code) and is supported only by + /// the http router. #[serde(default, skip_serializing_if = "Option::is_none", rename = "gatewayFailures")] pub gateway_failures: Option, - /// This detection type is enabled only when outlierDetection.splitExternalLocalOriginErrors is true and takes into account only locally originated errors (timeout, reset, etc). If Envoy repeatedly cannot connect to an upstream host or communication with the upstream host is repeatedly interrupted, it will be ejected. Various locally originated problems are detected: timeout, TCP reset, ICMP errors, etc. This detection type is supported by http router and tcp proxy. + /// This detection type is enabled only when + /// outlierDetection.splitExternalLocalOriginErrors is true and takes into + /// account only locally originated errors (timeout, reset, etc). + /// If Envoy repeatedly cannot connect to an upstream host or communication + /// with the upstream host is repeatedly interrupted, it will be ejected. + /// Various locally originated problems are detected: timeout, TCP reset, + /// ICMP errors, etc. This detection type is supported by http router and + /// tcp proxy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "localOriginFailures")] pub local_origin_failures: Option, - /// Success Rate based outlier detection aggregates success rate data from every host in a cluster. Then at given intervals ejects hosts based on statistical outlier detection. Success Rate outlier detection will not be calculated for a host if its request volume over the aggregation interval is less than the outlierDetection.detectors.successRate.requestVolume value. Moreover, detection will not be performed for a cluster if the number of hosts with the minimum required request volume in an interval is less than the outlierDetection.detectors.successRate.minimumHosts value. In the default configuration mode (outlierDetection.splitExternalLocalOriginErrors is false) this detection type takes into account all types of errors: locally and externally originated. In split mode (outlierDetection.splitExternalLocalOriginErrors is true), locally originated errors and externally originated (transaction) errors are counted and treated separately. + /// Success Rate based outlier detection aggregates success rate data from + /// every host in a cluster. Then at given intervals ejects hosts based on + /// statistical outlier detection. Success Rate outlier detection will not be + /// calculated for a host if its request volume over the aggregation interval + /// is less than the outlierDetection.detectors.successRate.requestVolume + /// value. + /// Moreover, detection will not be performed for a cluster if the number of + /// hosts with the minimum required request volume in an interval is less + /// than the outlierDetection.detectors.successRate.minimumHosts value. + /// In the default configuration mode + /// (outlierDetection.splitExternalLocalOriginErrors is false) this detection + /// type takes into account all types of errors: locally and externally + /// originated. + /// In split mode (outlierDetection.splitExternalLocalOriginErrors is true), + /// locally originated errors and externally originated (transaction) errors + /// are counted and treated separately. #[serde(default, skip_serializing_if = "Option::is_none", rename = "successRate")] pub success_rate: Option, - /// In the default mode (outlierDetection.splitExternalAndLocalErrors is false) this detection type takes into account all generated errors: locally originated and externally originated (transaction) errors. In split mode (outlierDetection.splitExternalLocalOriginErrors is true) this detection type takes into account only externally originated (transaction) errors, ignoring locally originated errors. If an upstream host is an HTTP-server, only 5xx types of error are taken into account (see Consecutive Gateway Failure for exceptions). Properly formatted responses, even when they carry an operational error (like index not found, access denied) are not taken into account. + /// In the default mode (outlierDetection.splitExternalAndLocalErrors is + /// false) this detection type takes into account all generated errors: + /// locally originated and externally originated (transaction) errors. + /// In split mode (outlierDetection.splitExternalLocalOriginErrors is true) + /// this detection type takes into account only externally originated + /// (transaction) errors, ignoring locally originated errors. + /// If an upstream host is an HTTP-server, only 5xx types of error are taken + /// into account (see Consecutive Gateway Failure for exceptions). + /// Properly formatted responses, even when they carry an operational error + /// (like index not found, access denied) are not taken into account. #[serde(default, skip_serializing_if = "Option::is_none", rename = "totalFailures")] pub total_failures: Option, } -/// Failure Percentage based outlier detection functions similarly to success rate detection, in that it relies on success rate data from each host in a cluster. However, rather than compare those values to the mean success rate of the cluster as a whole, they are compared to a flat user-configured threshold. This threshold is configured via the outlierDetection.failurePercentageThreshold field. The other configuration fields for failure percentage based detection are similar to the fields for success rate detection. As with success rate detection, detection will not be performed for a host if its request volume over the aggregation interval is less than the outlierDetection.detectors.failurePercentage.requestVolume value. Detection also will not be performed for a cluster if the number of hosts with the minimum required request volume in an interval is less than the outlierDetection.detectors.failurePercentage.minimumHosts value. +/// Failure Percentage based outlier detection functions similarly to success +/// rate detection, in that it relies on success rate data from each host in +/// a cluster. However, rather than compare those values to the mean success +/// rate of the cluster as a whole, they are compared to a flat +/// user-configured threshold. This threshold is configured via the +/// outlierDetection.failurePercentageThreshold field. +/// The other configuration fields for failure percentage based detection are +/// similar to the fields for success rate detection. As with success rate +/// detection, detection will not be performed for a host if its request +/// volume over the aggregation interval is less than the +/// outlierDetection.detectors.failurePercentage.requestVolume value. +/// Detection also will not be performed for a cluster if the number of hosts +/// with the minimum required request volume in an interval is less than the +/// outlierDetection.detectors.failurePercentage.minimumHosts value. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerFromDefaultOutlierDetectionDetectorsFailurePercentage { - /// The minimum number of hosts in a cluster in order to perform failure percentage-based ejection. If the total number of hosts in the cluster is less than this value, failure percentage-based ejection will not be performed. + /// The minimum number of hosts in a cluster in order to perform failure + /// percentage-based ejection. If the total number of hosts in the cluster is + /// less than this value, failure percentage-based ejection will not be + /// performed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minimumHosts")] pub minimum_hosts: Option, - /// The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to perform failure percentage-based ejection for this host. If the volume is lower than this setting, failure percentage-based ejection will not be performed for this host. + /// The minimum number of total requests that must be collected in one + /// interval (as defined by the interval duration above) to perform failure + /// percentage-based ejection for this host. If the volume is lower than this + /// setting, failure percentage-based ejection will not be performed for this + /// host. #[serde(default, skip_serializing_if = "Option::is_none", rename = "requestVolume")] pub request_volume: Option, - /// The failure percentage to use when determining failure percentage-based outlier detection. If the failure percentage of a given host is greater than or equal to this value, it will be ejected. + /// The failure percentage to use when determining failure percentage-based + /// outlier detection. If the failure percentage of a given host is greater + /// than or equal to this value, it will be ejected. #[serde(default, skip_serializing_if = "Option::is_none")] pub threshold: Option, } -/// In the default mode (outlierDetection.splitExternalLocalOriginErrors is false) this detection type takes into account a subset of 5xx errors, called "gateway errors" (502, 503 or 504 status code) and local origin failures, such as timeout, TCP reset etc. In split mode (outlierDetection.splitExternalLocalOriginErrors is true) this detection type takes into account a subset of 5xx errors, called "gateway errors" (502, 503 or 504 status code) and is supported only by the http router. +/// In the default mode (outlierDetection.splitExternalLocalOriginErrors is +/// false) this detection type takes into account a subset of 5xx errors, +/// called "gateway errors" (502, 503 or 504 status code) and local origin +/// failures, such as timeout, TCP reset etc. +/// In split mode (outlierDetection.splitExternalLocalOriginErrors is true) +/// this detection type takes into account a subset of 5xx errors, called +/// "gateway errors" (502, 503 or 504 status code) and is supported only by +/// the http router. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerFromDefaultOutlierDetectionDetectorsGatewayFailures { - /// The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs. + /// The number of consecutive gateway failures (502, 503, 504 status codes) + /// before a consecutive gateway failure ejection occurs. #[serde(default, skip_serializing_if = "Option::is_none")] pub consecutive: Option, } -/// This detection type is enabled only when outlierDetection.splitExternalLocalOriginErrors is true and takes into account only locally originated errors (timeout, reset, etc). If Envoy repeatedly cannot connect to an upstream host or communication with the upstream host is repeatedly interrupted, it will be ejected. Various locally originated problems are detected: timeout, TCP reset, ICMP errors, etc. This detection type is supported by http router and tcp proxy. +/// This detection type is enabled only when +/// outlierDetection.splitExternalLocalOriginErrors is true and takes into +/// account only locally originated errors (timeout, reset, etc). +/// If Envoy repeatedly cannot connect to an upstream host or communication +/// with the upstream host is repeatedly interrupted, it will be ejected. +/// Various locally originated problems are detected: timeout, TCP reset, +/// ICMP errors, etc. This detection type is supported by http router and +/// tcp proxy. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerFromDefaultOutlierDetectionDetectorsLocalOriginFailures { - /// The number of consecutive locally originated failures before ejection occurs. Parameter takes effect only when splitExternalAndLocalErrors is set to true. + /// The number of consecutive locally originated failures before ejection + /// occurs. Parameter takes effect only when splitExternalAndLocalErrors + /// is set to true. #[serde(default, skip_serializing_if = "Option::is_none")] pub consecutive: Option, } -/// Success Rate based outlier detection aggregates success rate data from every host in a cluster. Then at given intervals ejects hosts based on statistical outlier detection. Success Rate outlier detection will not be calculated for a host if its request volume over the aggregation interval is less than the outlierDetection.detectors.successRate.requestVolume value. Moreover, detection will not be performed for a cluster if the number of hosts with the minimum required request volume in an interval is less than the outlierDetection.detectors.successRate.minimumHosts value. In the default configuration mode (outlierDetection.splitExternalLocalOriginErrors is false) this detection type takes into account all types of errors: locally and externally originated. In split mode (outlierDetection.splitExternalLocalOriginErrors is true), locally originated errors and externally originated (transaction) errors are counted and treated separately. +/// Success Rate based outlier detection aggregates success rate data from +/// every host in a cluster. Then at given intervals ejects hosts based on +/// statistical outlier detection. Success Rate outlier detection will not be +/// calculated for a host if its request volume over the aggregation interval +/// is less than the outlierDetection.detectors.successRate.requestVolume +/// value. +/// Moreover, detection will not be performed for a cluster if the number of +/// hosts with the minimum required request volume in an interval is less +/// than the outlierDetection.detectors.successRate.minimumHosts value. +/// In the default configuration mode +/// (outlierDetection.splitExternalLocalOriginErrors is false) this detection +/// type takes into account all types of errors: locally and externally +/// originated. +/// In split mode (outlierDetection.splitExternalLocalOriginErrors is true), +/// locally originated errors and externally originated (transaction) errors +/// are counted and treated separately. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerFromDefaultOutlierDetectionDetectorsSuccessRate { - /// The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. + /// The number of hosts in a cluster that must have enough request volume to + /// detect success rate outliers. If the number of hosts is less than this + /// setting, outlier detection via success rate statistics is not performed + /// for any host in the cluster. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minimumHosts")] pub minimum_hosts: Option, - /// The minimum number of total requests that must be collected in one interval (as defined by the interval duration configured in outlierDetection section) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. + /// The minimum number of total requests that must be collected in one + /// interval (as defined by the interval duration configured in + /// outlierDetection section) to include this host in success rate based + /// outlier detection. If the volume is lower than this setting, outlier + /// detection via success rate statistics is not performed for that host. #[serde(default, skip_serializing_if = "Option::is_none", rename = "requestVolume")] pub request_volume: Option, - /// This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (standard_deviation * success_rate_standard_deviation_factor). Either int or decimal represented as string. + /// This factor is used to determine the ejection threshold for success rate + /// outlier ejection. The ejection threshold is the difference between + /// the mean success rate, and the product of this factor and the standard + /// deviation of the mean success rate: mean - (standard_deviation * + /// success_rate_standard_deviation_factor). + /// Either int or decimal represented as string. #[serde(default, skip_serializing_if = "Option::is_none", rename = "standardDeviationFactor")] pub standard_deviation_factor: Option, } -/// In the default mode (outlierDetection.splitExternalAndLocalErrors is false) this detection type takes into account all generated errors: locally originated and externally originated (transaction) errors. In split mode (outlierDetection.splitExternalLocalOriginErrors is true) this detection type takes into account only externally originated (transaction) errors, ignoring locally originated errors. If an upstream host is an HTTP-server, only 5xx types of error are taken into account (see Consecutive Gateway Failure for exceptions). Properly formatted responses, even when they carry an operational error (like index not found, access denied) are not taken into account. +/// In the default mode (outlierDetection.splitExternalAndLocalErrors is +/// false) this detection type takes into account all generated errors: +/// locally originated and externally originated (transaction) errors. +/// In split mode (outlierDetection.splitExternalLocalOriginErrors is true) +/// this detection type takes into account only externally originated +/// (transaction) errors, ignoring locally originated errors. +/// If an upstream host is an HTTP-server, only 5xx types of error are taken +/// into account (see Consecutive Gateway Failure for exceptions). +/// Properly formatted responses, even when they carry an operational error +/// (like index not found, access denied) are not taken into account. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerFromDefaultOutlierDetectionDetectorsTotalFailures { - /// The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive total failure ejection occurs. + /// The number of consecutive server-side error responses (for HTTP traffic, + /// 5xx responses; for TCP traffic, connection failures; for Redis, failure + /// to respond PONG; etc.) before a consecutive total failure ejection + /// occurs. #[serde(default, skip_serializing_if = "Option::is_none")] pub consecutive: Option, } -/// TargetRef is a reference to the resource that represents a group of destinations. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerFromTargetRef { /// Kind of the referenced resource @@ -169,15 +335,22 @@ pub struct MeshCircuitBreakerFromTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshCircuitBreakerFromTargetRefKind { Mesh, @@ -189,7 +362,9 @@ pub enum MeshCircuitBreakerFromTargetRefKind { MeshHttpRoute, } -/// 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 in place. +/// 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 in place. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerTargetRef { /// Kind of the referenced resource @@ -198,15 +373,23 @@ pub struct MeshCircuitBreakerTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 the policy takes an effect on. The resource could be either a real store object or virtual resource defined in place. +/// 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 in place. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshCircuitBreakerTargetRefKind { Mesh, @@ -220,49 +403,77 @@ pub enum MeshCircuitBreakerTargetRefKind { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerTo { - /// Default is a configuration specific to the group of destinations referenced in 'targetRef' + /// 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. + /// TargetRef is a reference to the resource that represents a group of + /// destinations. #[serde(rename = "targetRef")] pub target_ref: MeshCircuitBreakerToTargetRef, } -/// Default is a configuration specific to the group of destinations referenced in 'targetRef' +/// Default is a configuration specific to the group of destinations +/// referenced in 'targetRef' #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerToDefault { - /// ConnectionLimits contains configuration of each circuit breaking limit, which when exceeded makes the circuit breaker to become open (no traffic is allowed like no current is allowed in the circuits when physical circuit breaker ir open) + /// ConnectionLimits contains configuration of each circuit breaking limit, + /// which when exceeded makes the circuit breaker to become open (no traffic + /// is allowed like no current is allowed in the circuits when physical + /// circuit breaker ir open) #[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionLimits")] pub connection_limits: Option, - /// OutlierDetection contains the configuration of the process of dynamically determining whether some number of hosts in an upstream cluster are performing unlike the others and removing them from the healthy load balancing set. Performance might be along different axes such as consecutive failures, temporal success rate, temporal latency, etc. Outlier detection is a form of passive health checking. + /// OutlierDetection contains the configuration of the process of dynamically + /// determining whether some number of hosts in an upstream cluster are + /// performing unlike the others and removing them from the healthy load + /// balancing set. Performance might be along different axes such as + /// consecutive failures, temporal success rate, temporal latency, etc. + /// Outlier detection is a form of passive health checking. #[serde(default, skip_serializing_if = "Option::is_none", rename = "outlierDetection")] pub outlier_detection: Option, } -/// ConnectionLimits contains configuration of each circuit breaking limit, which when exceeded makes the circuit breaker to become open (no traffic is allowed like no current is allowed in the circuits when physical circuit breaker ir open) +/// ConnectionLimits contains configuration of each circuit breaking limit, +/// which when exceeded makes the circuit breaker to become open (no traffic +/// is allowed like no current is allowed in the circuits when physical +/// circuit breaker ir open) #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerToDefaultConnectionLimits { - /// The maximum number of connection pools per cluster that are concurrently supported at once. Set this for clusters which create a large number of connection pools. + /// The maximum number of connection pools per cluster that are concurrently + /// supported at once. Set this for clusters which create a large number of + /// connection pools. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxConnectionPools")] pub max_connection_pools: Option, - /// The maximum number of connections allowed to be made to the upstream cluster. + /// The maximum number of connections allowed to be made to the upstream + /// cluster. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxConnections")] pub max_connections: Option, - /// The maximum number of pending requests that are allowed to the upstream cluster. This limit is applied as a connection limit for non-HTTP traffic. + /// The maximum number of pending requests that are allowed to the upstream + /// cluster. This limit is applied as a connection limit for non-HTTP + /// traffic. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxPendingRequests")] pub max_pending_requests: Option, - /// The maximum number of parallel requests that are allowed to be made to the upstream cluster. This limit does not apply to non-HTTP traffic. + /// The maximum number of parallel requests that are allowed to be made + /// to the upstream cluster. This limit does not apply to non-HTTP traffic. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxRequests")] pub max_requests: Option, - /// The maximum number of parallel retries that will be allowed to the upstream cluster. + /// The maximum number of parallel retries that will be allowed to + /// the upstream cluster. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxRetries")] pub max_retries: Option, } -/// OutlierDetection contains the configuration of the process of dynamically determining whether some number of hosts in an upstream cluster are performing unlike the others and removing them from the healthy load balancing set. Performance might be along different axes such as consecutive failures, temporal success rate, temporal latency, etc. Outlier detection is a form of passive health checking. +/// OutlierDetection contains the configuration of the process of dynamically +/// determining whether some number of hosts in an upstream cluster are +/// performing unlike the others and removing them from the healthy load +/// balancing set. Performance might be along different axes such as +/// consecutive failures, temporal success rate, temporal latency, etc. +/// Outlier detection is a form of passive health checking. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerToDefaultOutlierDetection { - /// The base time that a host is ejected for. The real time is equal to the base time multiplied by the number of times the host has been ejected. + /// The base time that a host is ejected for. The real time is equal to + /// the base time multiplied by the number of times the host has been + /// ejected. #[serde(default, skip_serializing_if = "Option::is_none", rename = "baseEjectionTime")] pub base_ejection_time: Option, /// Contains configuration for supported outlier detectors @@ -271,13 +482,18 @@ pub struct MeshCircuitBreakerToDefaultOutlierDetection { /// When set to true, outlierDetection configuration won't take any effect #[serde(default, skip_serializing_if = "Option::is_none")] pub disabled: Option, - /// The time interval between ejection analysis sweeps. This can result in both new ejections and hosts being returned to service. + /// The time interval between ejection analysis sweeps. This can result in + /// both new ejections and hosts being returned to service. #[serde(default, skip_serializing_if = "Option::is_none")] pub interval: Option, - /// The maximum % of an upstream cluster that can be ejected due to outlier detection. Defaults to 10% but will eject at least one host regardless of the value. + /// The maximum % of an upstream cluster that can be ejected due to outlier + /// detection. Defaults to 10% but will eject at least one host regardless of + /// the value. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxEjectionPercent")] pub max_ejection_percent: Option, - /// Determines whether to distinguish local origin failures from external errors. If set to true the following configuration parameters are taken into account: detectors.localOriginFailures.consecutive + /// Determines whether to distinguish local origin failures from external + /// errors. If set to true the following configuration parameters are taken + /// into account: detectors.localOriginFailures.consecutive #[serde(default, skip_serializing_if = "Option::is_none", rename = "splitExternalAndLocalErrors")] pub split_external_and_local_errors: Option, } @@ -285,76 +501,206 @@ pub struct MeshCircuitBreakerToDefaultOutlierDetection { /// Contains configuration for supported outlier detectors #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerToDefaultOutlierDetectionDetectors { - /// Failure Percentage based outlier detection functions similarly to success rate detection, in that it relies on success rate data from each host in a cluster. However, rather than compare those values to the mean success rate of the cluster as a whole, they are compared to a flat user-configured threshold. This threshold is configured via the outlierDetection.failurePercentageThreshold field. The other configuration fields for failure percentage based detection are similar to the fields for success rate detection. As with success rate detection, detection will not be performed for a host if its request volume over the aggregation interval is less than the outlierDetection.detectors.failurePercentage.requestVolume value. Detection also will not be performed for a cluster if the number of hosts with the minimum required request volume in an interval is less than the outlierDetection.detectors.failurePercentage.minimumHosts value. + /// Failure Percentage based outlier detection functions similarly to success + /// rate detection, in that it relies on success rate data from each host in + /// a cluster. However, rather than compare those values to the mean success + /// rate of the cluster as a whole, they are compared to a flat + /// user-configured threshold. This threshold is configured via the + /// outlierDetection.failurePercentageThreshold field. + /// The other configuration fields for failure percentage based detection are + /// similar to the fields for success rate detection. As with success rate + /// detection, detection will not be performed for a host if its request + /// volume over the aggregation interval is less than the + /// outlierDetection.detectors.failurePercentage.requestVolume value. + /// Detection also will not be performed for a cluster if the number of hosts + /// with the minimum required request volume in an interval is less than the + /// outlierDetection.detectors.failurePercentage.minimumHosts value. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failurePercentage")] pub failure_percentage: Option, - /// In the default mode (outlierDetection.splitExternalLocalOriginErrors is false) this detection type takes into account a subset of 5xx errors, called "gateway errors" (502, 503 or 504 status code) and local origin failures, such as timeout, TCP reset etc. In split mode (outlierDetection.splitExternalLocalOriginErrors is true) this detection type takes into account a subset of 5xx errors, called "gateway errors" (502, 503 or 504 status code) and is supported only by the http router. + /// In the default mode (outlierDetection.splitExternalLocalOriginErrors is + /// false) this detection type takes into account a subset of 5xx errors, + /// called "gateway errors" (502, 503 or 504 status code) and local origin + /// failures, such as timeout, TCP reset etc. + /// In split mode (outlierDetection.splitExternalLocalOriginErrors is true) + /// this detection type takes into account a subset of 5xx errors, called + /// "gateway errors" (502, 503 or 504 status code) and is supported only by + /// the http router. #[serde(default, skip_serializing_if = "Option::is_none", rename = "gatewayFailures")] pub gateway_failures: Option, - /// This detection type is enabled only when outlierDetection.splitExternalLocalOriginErrors is true and takes into account only locally originated errors (timeout, reset, etc). If Envoy repeatedly cannot connect to an upstream host or communication with the upstream host is repeatedly interrupted, it will be ejected. Various locally originated problems are detected: timeout, TCP reset, ICMP errors, etc. This detection type is supported by http router and tcp proxy. + /// This detection type is enabled only when + /// outlierDetection.splitExternalLocalOriginErrors is true and takes into + /// account only locally originated errors (timeout, reset, etc). + /// If Envoy repeatedly cannot connect to an upstream host or communication + /// with the upstream host is repeatedly interrupted, it will be ejected. + /// Various locally originated problems are detected: timeout, TCP reset, + /// ICMP errors, etc. This detection type is supported by http router and + /// tcp proxy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "localOriginFailures")] pub local_origin_failures: Option, - /// Success Rate based outlier detection aggregates success rate data from every host in a cluster. Then at given intervals ejects hosts based on statistical outlier detection. Success Rate outlier detection will not be calculated for a host if its request volume over the aggregation interval is less than the outlierDetection.detectors.successRate.requestVolume value. Moreover, detection will not be performed for a cluster if the number of hosts with the minimum required request volume in an interval is less than the outlierDetection.detectors.successRate.minimumHosts value. In the default configuration mode (outlierDetection.splitExternalLocalOriginErrors is false) this detection type takes into account all types of errors: locally and externally originated. In split mode (outlierDetection.splitExternalLocalOriginErrors is true), locally originated errors and externally originated (transaction) errors are counted and treated separately. + /// Success Rate based outlier detection aggregates success rate data from + /// every host in a cluster. Then at given intervals ejects hosts based on + /// statistical outlier detection. Success Rate outlier detection will not be + /// calculated for a host if its request volume over the aggregation interval + /// is less than the outlierDetection.detectors.successRate.requestVolume + /// value. + /// Moreover, detection will not be performed for a cluster if the number of + /// hosts with the minimum required request volume in an interval is less + /// than the outlierDetection.detectors.successRate.minimumHosts value. + /// In the default configuration mode + /// (outlierDetection.splitExternalLocalOriginErrors is false) this detection + /// type takes into account all types of errors: locally and externally + /// originated. + /// In split mode (outlierDetection.splitExternalLocalOriginErrors is true), + /// locally originated errors and externally originated (transaction) errors + /// are counted and treated separately. #[serde(default, skip_serializing_if = "Option::is_none", rename = "successRate")] pub success_rate: Option, - /// In the default mode (outlierDetection.splitExternalAndLocalErrors is false) this detection type takes into account all generated errors: locally originated and externally originated (transaction) errors. In split mode (outlierDetection.splitExternalLocalOriginErrors is true) this detection type takes into account only externally originated (transaction) errors, ignoring locally originated errors. If an upstream host is an HTTP-server, only 5xx types of error are taken into account (see Consecutive Gateway Failure for exceptions). Properly formatted responses, even when they carry an operational error (like index not found, access denied) are not taken into account. + /// In the default mode (outlierDetection.splitExternalAndLocalErrors is + /// false) this detection type takes into account all generated errors: + /// locally originated and externally originated (transaction) errors. + /// In split mode (outlierDetection.splitExternalLocalOriginErrors is true) + /// this detection type takes into account only externally originated + /// (transaction) errors, ignoring locally originated errors. + /// If an upstream host is an HTTP-server, only 5xx types of error are taken + /// into account (see Consecutive Gateway Failure for exceptions). + /// Properly formatted responses, even when they carry an operational error + /// (like index not found, access denied) are not taken into account. #[serde(default, skip_serializing_if = "Option::is_none", rename = "totalFailures")] pub total_failures: Option, } -/// Failure Percentage based outlier detection functions similarly to success rate detection, in that it relies on success rate data from each host in a cluster. However, rather than compare those values to the mean success rate of the cluster as a whole, they are compared to a flat user-configured threshold. This threshold is configured via the outlierDetection.failurePercentageThreshold field. The other configuration fields for failure percentage based detection are similar to the fields for success rate detection. As with success rate detection, detection will not be performed for a host if its request volume over the aggregation interval is less than the outlierDetection.detectors.failurePercentage.requestVolume value. Detection also will not be performed for a cluster if the number of hosts with the minimum required request volume in an interval is less than the outlierDetection.detectors.failurePercentage.minimumHosts value. +/// Failure Percentage based outlier detection functions similarly to success +/// rate detection, in that it relies on success rate data from each host in +/// a cluster. However, rather than compare those values to the mean success +/// rate of the cluster as a whole, they are compared to a flat +/// user-configured threshold. This threshold is configured via the +/// outlierDetection.failurePercentageThreshold field. +/// The other configuration fields for failure percentage based detection are +/// similar to the fields for success rate detection. As with success rate +/// detection, detection will not be performed for a host if its request +/// volume over the aggregation interval is less than the +/// outlierDetection.detectors.failurePercentage.requestVolume value. +/// Detection also will not be performed for a cluster if the number of hosts +/// with the minimum required request volume in an interval is less than the +/// outlierDetection.detectors.failurePercentage.minimumHosts value. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerToDefaultOutlierDetectionDetectorsFailurePercentage { - /// The minimum number of hosts in a cluster in order to perform failure percentage-based ejection. If the total number of hosts in the cluster is less than this value, failure percentage-based ejection will not be performed. + /// The minimum number of hosts in a cluster in order to perform failure + /// percentage-based ejection. If the total number of hosts in the cluster is + /// less than this value, failure percentage-based ejection will not be + /// performed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minimumHosts")] pub minimum_hosts: Option, - /// The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to perform failure percentage-based ejection for this host. If the volume is lower than this setting, failure percentage-based ejection will not be performed for this host. + /// The minimum number of total requests that must be collected in one + /// interval (as defined by the interval duration above) to perform failure + /// percentage-based ejection for this host. If the volume is lower than this + /// setting, failure percentage-based ejection will not be performed for this + /// host. #[serde(default, skip_serializing_if = "Option::is_none", rename = "requestVolume")] pub request_volume: Option, - /// The failure percentage to use when determining failure percentage-based outlier detection. If the failure percentage of a given host is greater than or equal to this value, it will be ejected. + /// The failure percentage to use when determining failure percentage-based + /// outlier detection. If the failure percentage of a given host is greater + /// than or equal to this value, it will be ejected. #[serde(default, skip_serializing_if = "Option::is_none")] pub threshold: Option, } -/// In the default mode (outlierDetection.splitExternalLocalOriginErrors is false) this detection type takes into account a subset of 5xx errors, called "gateway errors" (502, 503 or 504 status code) and local origin failures, such as timeout, TCP reset etc. In split mode (outlierDetection.splitExternalLocalOriginErrors is true) this detection type takes into account a subset of 5xx errors, called "gateway errors" (502, 503 or 504 status code) and is supported only by the http router. +/// In the default mode (outlierDetection.splitExternalLocalOriginErrors is +/// false) this detection type takes into account a subset of 5xx errors, +/// called "gateway errors" (502, 503 or 504 status code) and local origin +/// failures, such as timeout, TCP reset etc. +/// In split mode (outlierDetection.splitExternalLocalOriginErrors is true) +/// this detection type takes into account a subset of 5xx errors, called +/// "gateway errors" (502, 503 or 504 status code) and is supported only by +/// the http router. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerToDefaultOutlierDetectionDetectorsGatewayFailures { - /// The number of consecutive gateway failures (502, 503, 504 status codes) before a consecutive gateway failure ejection occurs. + /// The number of consecutive gateway failures (502, 503, 504 status codes) + /// before a consecutive gateway failure ejection occurs. #[serde(default, skip_serializing_if = "Option::is_none")] pub consecutive: Option, } -/// This detection type is enabled only when outlierDetection.splitExternalLocalOriginErrors is true and takes into account only locally originated errors (timeout, reset, etc). If Envoy repeatedly cannot connect to an upstream host or communication with the upstream host is repeatedly interrupted, it will be ejected. Various locally originated problems are detected: timeout, TCP reset, ICMP errors, etc. This detection type is supported by http router and tcp proxy. +/// This detection type is enabled only when +/// outlierDetection.splitExternalLocalOriginErrors is true and takes into +/// account only locally originated errors (timeout, reset, etc). +/// If Envoy repeatedly cannot connect to an upstream host or communication +/// with the upstream host is repeatedly interrupted, it will be ejected. +/// Various locally originated problems are detected: timeout, TCP reset, +/// ICMP errors, etc. This detection type is supported by http router and +/// tcp proxy. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerToDefaultOutlierDetectionDetectorsLocalOriginFailures { - /// The number of consecutive locally originated failures before ejection occurs. Parameter takes effect only when splitExternalAndLocalErrors is set to true. + /// The number of consecutive locally originated failures before ejection + /// occurs. Parameter takes effect only when splitExternalAndLocalErrors + /// is set to true. #[serde(default, skip_serializing_if = "Option::is_none")] pub consecutive: Option, } -/// Success Rate based outlier detection aggregates success rate data from every host in a cluster. Then at given intervals ejects hosts based on statistical outlier detection. Success Rate outlier detection will not be calculated for a host if its request volume over the aggregation interval is less than the outlierDetection.detectors.successRate.requestVolume value. Moreover, detection will not be performed for a cluster if the number of hosts with the minimum required request volume in an interval is less than the outlierDetection.detectors.successRate.minimumHosts value. In the default configuration mode (outlierDetection.splitExternalLocalOriginErrors is false) this detection type takes into account all types of errors: locally and externally originated. In split mode (outlierDetection.splitExternalLocalOriginErrors is true), locally originated errors and externally originated (transaction) errors are counted and treated separately. +/// Success Rate based outlier detection aggregates success rate data from +/// every host in a cluster. Then at given intervals ejects hosts based on +/// statistical outlier detection. Success Rate outlier detection will not be +/// calculated for a host if its request volume over the aggregation interval +/// is less than the outlierDetection.detectors.successRate.requestVolume +/// value. +/// Moreover, detection will not be performed for a cluster if the number of +/// hosts with the minimum required request volume in an interval is less +/// than the outlierDetection.detectors.successRate.minimumHosts value. +/// In the default configuration mode +/// (outlierDetection.splitExternalLocalOriginErrors is false) this detection +/// type takes into account all types of errors: locally and externally +/// originated. +/// In split mode (outlierDetection.splitExternalLocalOriginErrors is true), +/// locally originated errors and externally originated (transaction) errors +/// are counted and treated separately. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerToDefaultOutlierDetectionDetectorsSuccessRate { - /// The number of hosts in a cluster that must have enough request volume to detect success rate outliers. If the number of hosts is less than this setting, outlier detection via success rate statistics is not performed for any host in the cluster. + /// The number of hosts in a cluster that must have enough request volume to + /// detect success rate outliers. If the number of hosts is less than this + /// setting, outlier detection via success rate statistics is not performed + /// for any host in the cluster. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minimumHosts")] pub minimum_hosts: Option, - /// The minimum number of total requests that must be collected in one interval (as defined by the interval duration configured in outlierDetection section) to include this host in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that host. + /// The minimum number of total requests that must be collected in one + /// interval (as defined by the interval duration configured in + /// outlierDetection section) to include this host in success rate based + /// outlier detection. If the volume is lower than this setting, outlier + /// detection via success rate statistics is not performed for that host. #[serde(default, skip_serializing_if = "Option::is_none", rename = "requestVolume")] pub request_volume: Option, - /// This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (standard_deviation * success_rate_standard_deviation_factor). Either int or decimal represented as string. + /// This factor is used to determine the ejection threshold for success rate + /// outlier ejection. The ejection threshold is the difference between + /// the mean success rate, and the product of this factor and the standard + /// deviation of the mean success rate: mean - (standard_deviation * + /// success_rate_standard_deviation_factor). + /// Either int or decimal represented as string. #[serde(default, skip_serializing_if = "Option::is_none", rename = "standardDeviationFactor")] pub standard_deviation_factor: Option, } -/// In the default mode (outlierDetection.splitExternalAndLocalErrors is false) this detection type takes into account all generated errors: locally originated and externally originated (transaction) errors. In split mode (outlierDetection.splitExternalLocalOriginErrors is true) this detection type takes into account only externally originated (transaction) errors, ignoring locally originated errors. If an upstream host is an HTTP-server, only 5xx types of error are taken into account (see Consecutive Gateway Failure for exceptions). Properly formatted responses, even when they carry an operational error (like index not found, access denied) are not taken into account. +/// In the default mode (outlierDetection.splitExternalAndLocalErrors is +/// false) this detection type takes into account all generated errors: +/// locally originated and externally originated (transaction) errors. +/// In split mode (outlierDetection.splitExternalLocalOriginErrors is true) +/// this detection type takes into account only externally originated +/// (transaction) errors, ignoring locally originated errors. +/// If an upstream host is an HTTP-server, only 5xx types of error are taken +/// into account (see Consecutive Gateway Failure for exceptions). +/// Properly formatted responses, even when they carry an operational error +/// (like index not found, access denied) are not taken into account. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerToDefaultOutlierDetectionDetectorsTotalFailures { - /// The number of consecutive server-side error responses (for HTTP traffic, 5xx responses; for TCP traffic, connection failures; for Redis, failure to respond PONG; etc.) before a consecutive total failure ejection occurs. + /// The number of consecutive server-side error responses (for HTTP traffic, + /// 5xx responses; for TCP traffic, connection failures; for Redis, failure + /// to respond PONG; etc.) before a consecutive total failure ejection + /// occurs. #[serde(default, skip_serializing_if = "Option::is_none")] pub consecutive: Option, } -/// TargetRef is a reference to the resource that represents a group of destinations. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshCircuitBreakerToTargetRef { /// Kind of the referenced resource @@ -363,15 +709,22 @@ pub struct MeshCircuitBreakerToTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshCircuitBreakerToTargetRefKind { Mesh, 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 a88c6f85e..7fe21966b 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshfaultinjections.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshfaultinjections.rs @@ -16,7 +16,9 @@ pub struct MeshFaultInjectionSpec { /// From list makes a match between clients and corresponding configurations #[serde(default, skip_serializing_if = "Option::is_none")] pub from: Option>, - /// 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. + /// 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 @@ -26,15 +28,18 @@ pub struct MeshFaultInjectionSpec { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshFaultInjectionFrom { - /// Default is a configuration specific to the group of destinations referenced in 'targetRef' + /// 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. + /// TargetRef is a reference to the resource that represents a group of + /// destinations. #[serde(rename = "targetRef")] pub target_ref: MeshFaultInjectionFromTargetRef, } -/// Default is a configuration specific to the group of destinations referenced in 'targetRef' +/// Default is a configuration specific to the group of destinations referenced in +/// 'targetRef' #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshFaultInjectionFromDefault { /// Http allows to define list of Http faults between dataplanes. @@ -45,46 +50,57 @@ pub struct MeshFaultInjectionFromDefault { /// FaultInjection defines the configuration of faults between dataplanes. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshFaultInjectionFromDefaultHttp { - /// Abort defines a configuration of not delivering requests to destination service and replacing the responses from destination dataplane by predefined status code + /// 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 + /// 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 +/// 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 MeshFaultInjectionFromDefaultHttpAbort { /// 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. + /// 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 MeshFaultInjectionFromDefaultHttpDelay { - /// Percentage of requests on which delay will be injected, has to be either int or decimal represented as string. + /// 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 +/// ResponseBandwidth defines a configuration to limit the speed of +/// responding to the requests #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshFaultInjectionFromDefaultHttpResponseBandwidth { - /// Limit is represented by value measure in gbps, mbps, kbps or bps, e.g. 10kbps + /// 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. + /// 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. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshFaultInjectionFromTargetRef { /// Kind of the referenced resource @@ -93,15 +109,22 @@ pub struct MeshFaultInjectionFromTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshFaultInjectionFromTargetRefKind { Mesh, @@ -113,7 +136,9 @@ pub enum MeshFaultInjectionFromTargetRefKind { MeshHttpRoute, } -/// 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. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshFaultInjectionTargetRef { /// Kind of the referenced resource @@ -122,15 +147,23 @@ pub struct MeshFaultInjectionTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 the policy takes an effect on. The resource could be either a real store object or virtual resource defined inplace. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshFaultInjectionTargetRefKind { Mesh, @@ -144,15 +177,18 @@ pub enum MeshFaultInjectionTargetRefKind { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshFaultInjectionTo { - /// Default is a configuration specific to the group of destinations referenced in 'targetRef' + /// 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. + /// 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' +/// 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. @@ -163,46 +199,57 @@ pub struct MeshFaultInjectionToDefault { /// 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 + /// 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 + /// 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 +/// 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. + /// 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. + /// 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 +/// 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 + /// 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. + /// 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. +/// 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 @@ -211,15 +258,22 @@ pub struct MeshFaultInjectionToTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshFaultInjectionToTargetRefKind { Mesh, diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshgatewayconfigs.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshgatewayconfigs.rs index b7c373aec..ac14e4d30 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshgatewayconfigs.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshgatewayconfigs.rs @@ -13,25 +13,36 @@ use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; #[kube(status = "MeshGatewayConfigStatus")] #[kube(schema = "disabled")] pub struct MeshGatewayConfigSpec { - /// CrossMesh specifies whether listeners configured by this gateway are cross mesh listeners. + /// CrossMesh specifies whether listeners configured by this gateway are + /// cross mesh listeners. #[serde(default, skip_serializing_if = "Option::is_none", rename = "crossMesh")] pub cross_mesh: Option, /// PodTemplate configures the Pod owned by this config. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podTemplate")] pub pod_template: Option, - /// Replicas is the number of dataplane proxy replicas to create. For now this is a fixed number, but in the future it could be automatically scaled based on metrics. + /// Replicas is the number of dataplane proxy replicas to create. For + /// now this is a fixed number, but in the future it could be + /// automatically scaled based on metrics. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// Resources specifies the compute resources for the proxy container. The default can be set in the control plane config. + /// Resources specifies the compute resources for the proxy container. + /// The default can be set in the control plane config. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, /// ServiceTemplate configures the Service owned by this config. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceTemplate")] pub service_template: Option, - /// ServiceType specifies the type of managed Service that will be created to expose the dataplane proxies to traffic from outside the cluster. The ports to expose will be taken from the matching Gateway resource. If there is no matching Gateway, the managed Service will be deleted. + /// ServiceType specifies the type of managed Service that will be + /// created to expose the dataplane proxies to traffic from outside + /// the cluster. The ports to expose will be taken from the matching Gateway + /// resource. If there is no matching Gateway, the managed Service will + /// be deleted. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceType")] pub service_type: Option, - /// Tags specifies a set of Kuma tags that are included in the MeshGatewayInstance and thus propagated to every Dataplane generated to serve the MeshGateway. These tags should include a maximum of one `kuma.io/service` tag. + /// Tags specifies a set of Kuma tags that are included in the + /// MeshGatewayInstance and thus propagated to every Dataplane generated to + /// serve the MeshGateway. + /// These tags should include a maximum of one `kuma.io/service` tag. #[serde(default, skip_serializing_if = "Option::is_none")] pub tags: Option>, } @@ -96,18 +107,29 @@ pub struct MeshGatewayConfigPodTemplateSpecSecurityContext { pub fs_group: Option, } -/// Resources specifies the compute resources for the proxy container. The default can be set in the control plane config. +/// Resources specifies the compute resources for the proxy container. +/// The default can be set in the control plane config. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshGatewayConfigResources { - /// Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - /// This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - /// This field is immutable. It can only be set for containers. + /// Claims lists the names of resources, defined in spec.resourceClaims, + /// that are used by this container. + /// + /// + /// This is an alpha field and requires enabling the + /// DynamicResourceAllocation feature gate. + /// + /// + /// This field is immutable. It can only be set for containers. #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, - /// Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + /// Limits describes the maximum amount of compute resources allowed. + /// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ #[serde(default, skip_serializing_if = "Option::is_none")] pub limits: Option>, - /// Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + /// Requests describes the minimum amount of compute resources required. + /// If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + /// otherwise to an implementation-defined value. Requests cannot exceed Limits. + /// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ #[serde(default, skip_serializing_if = "Option::is_none")] pub requests: Option>, } @@ -115,7 +137,9 @@ pub struct MeshGatewayConfigResources { /// ResourceClaim references one entry in PodSpec.ResourceClaims. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshGatewayConfigResourcesClaims { - /// Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. + /// Name must match the name of one entry in pod.spec.resourceClaims of + /// the Pod where this field is used. It makes that resource available + /// inside a container. pub name: String, } @@ -158,7 +182,8 @@ pub enum MeshGatewayConfigServiceType { NodePort, } -/// MeshGatewayConfigStatus holds information about the status of the gateway instance. +/// MeshGatewayConfigStatus holds information about the status of the gateway +/// instance. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshGatewayConfigStatus { } diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshgatewayinstances.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshgatewayinstances.rs index cf23ca3a4..b5220c741 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshgatewayinstances.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshgatewayinstances.rs @@ -17,19 +17,29 @@ pub struct MeshGatewayInstanceSpec { /// PodTemplate configures the Pod owned by this config. #[serde(default, skip_serializing_if = "Option::is_none", rename = "podTemplate")] pub pod_template: Option, - /// Replicas is the number of dataplane proxy replicas to create. For now this is a fixed number, but in the future it could be automatically scaled based on metrics. + /// Replicas is the number of dataplane proxy replicas to create. For + /// now this is a fixed number, but in the future it could be + /// automatically scaled based on metrics. #[serde(default, skip_serializing_if = "Option::is_none")] pub replicas: Option, - /// Resources specifies the compute resources for the proxy container. The default can be set in the control plane config. + /// Resources specifies the compute resources for the proxy container. + /// The default can be set in the control plane config. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, /// ServiceTemplate configures the Service owned by this config. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceTemplate")] pub service_template: Option, - /// ServiceType specifies the type of managed Service that will be created to expose the dataplane proxies to traffic from outside the cluster. The ports to expose will be taken from the matching Gateway resource. If there is no matching Gateway, the managed Service will be deleted. + /// ServiceType specifies the type of managed Service that will be + /// created to expose the dataplane proxies to traffic from outside + /// the cluster. The ports to expose will be taken from the matching Gateway + /// resource. If there is no matching Gateway, the managed Service will + /// be deleted. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceType")] pub service_type: Option, - /// Tags specifies the Kuma tags that are propagated to the managed dataplane proxies. These tags should include exactly one `kuma.io/service` tag, and should match exactly one Gateway resource. + /// Tags specifies the Kuma tags that are propagated to the managed + /// dataplane proxies. These tags should include exactly one + /// `kuma.io/service` tag, and should match exactly one Gateway + /// resource. #[serde(default, skip_serializing_if = "Option::is_none")] pub tags: Option>, } @@ -94,18 +104,29 @@ pub struct MeshGatewayInstancePodTemplateSpecSecurityContext { pub fs_group: Option, } -/// Resources specifies the compute resources for the proxy container. The default can be set in the control plane config. +/// Resources specifies the compute resources for the proxy container. +/// The default can be set in the control plane config. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshGatewayInstanceResources { - /// Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - /// This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - /// This field is immutable. It can only be set for containers. + /// Claims lists the names of resources, defined in spec.resourceClaims, + /// that are used by this container. + /// + /// + /// This is an alpha field and requires enabling the + /// DynamicResourceAllocation feature gate. + /// + /// + /// This field is immutable. It can only be set for containers. #[serde(default, skip_serializing_if = "Option::is_none")] pub claims: Option>, - /// Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + /// Limits describes the maximum amount of compute resources allowed. + /// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ #[serde(default, skip_serializing_if = "Option::is_none")] pub limits: Option>, - /// Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + /// Requests describes the minimum amount of compute resources required. + /// If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + /// otherwise to an implementation-defined value. Requests cannot exceed Limits. + /// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ #[serde(default, skip_serializing_if = "Option::is_none")] pub requests: Option>, } @@ -113,7 +134,9 @@ pub struct MeshGatewayInstanceResources { /// ResourceClaim references one entry in PodSpec.ResourceClaims. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshGatewayInstanceResourcesClaims { - /// Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. + /// Name must match the name of one entry in pod.spec.resourceClaims of + /// the Pod where this field is used. It makes that resource available + /// inside a container. pub name: String, } @@ -156,42 +179,84 @@ pub enum MeshGatewayInstanceServiceType { NodePort, } -/// MeshGatewayInstanceStatus holds information about the status of the gateway instance. +/// MeshGatewayInstanceStatus holds information about the status of the gateway +/// instance. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshGatewayInstanceStatus { /// Conditions is an array of gateway instance conditions. #[serde(default, skip_serializing_if = "Option::is_none")] pub conditions: Option>, - /// LoadBalancer contains the current status of the load-balancer, if one is present. + /// LoadBalancer contains the current status of the load-balancer, + /// if one is present. #[serde(default, skip_serializing_if = "Option::is_none", rename = "loadBalancer")] pub load_balancer: Option, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshGatewayInstanceStatusConditions { - /// lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// lastTransitionTime is the last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// message is a human readable message indicating details about the transition. This may be an empty string. + /// message is a human readable message indicating details about the transition. + /// This may be an empty string. pub message: String, - /// observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + /// observedGeneration represents the .metadata.generation that the condition was set based upon. + /// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + /// with respect to the current state of the instance. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + /// reason contains a programmatic identifier indicating the reason for the condition's last transition. + /// Producers of specific condition types may define expected values and meanings for this field, + /// and whether the values are considered a guaranteed API. + /// The value should be a CamelCase string. + /// This field may not be empty. pub reason: String, /// status of the condition, one of True, False, Unknown. pub status: MeshGatewayInstanceStatusConditionsStatus, - /// type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + /// type of condition in CamelCase or in foo.example.com/CamelCase. + /// --- + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + /// useful (see .node.status.conditions), the ability to deconflict is important. + /// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) #[serde(rename = "type")] pub r#type: String, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshGatewayInstanceStatusConditionsStatus { True, @@ -199,39 +264,58 @@ pub enum MeshGatewayInstanceStatusConditionsStatus { Unknown, } -/// LoadBalancer contains the current status of the load-balancer, if one is present. +/// LoadBalancer contains the current status of the load-balancer, +/// if one is present. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshGatewayInstanceStatusLoadBalancer { - /// Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points. + /// Ingress is a list containing ingress points for the load-balancer. + /// Traffic intended for the service should be sent to these ingress points. #[serde(default, skip_serializing_if = "Option::is_none")] pub ingress: Option>, } -/// LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point. +/// LoadBalancerIngress represents the status of a load-balancer ingress point: +/// traffic intended for the service should be sent to an ingress point. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshGatewayInstanceStatusLoadBalancerIngress { - /// Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers) + /// Hostname is set for load-balancer ingress points that are DNS based + /// (typically AWS load-balancers) #[serde(default, skip_serializing_if = "Option::is_none")] pub hostname: Option, - /// IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers) + /// IP is set for load-balancer ingress points that are IP based + /// (typically GCE or OpenStack load-balancers) #[serde(default, skip_serializing_if = "Option::is_none")] pub ip: Option, - /// IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified. Setting this to "VIP" indicates that traffic is delivered to the node with the destination set to the load-balancer's IP and port. Setting this to "Proxy" indicates that traffic is delivered to the node or pod with the destination set to the node's IP and node port or the pod's IP and port. Service implementations may use this information to adjust traffic routing. + /// IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified. + /// Setting this to "VIP" indicates that traffic is delivered to the node with + /// the destination set to the load-balancer's IP and port. + /// Setting this to "Proxy" indicates that traffic is delivered to the node or pod with + /// the destination set to the node's IP and node port or the pod's IP and port. + /// Service implementations may use this information to adjust traffic routing. #[serde(default, skip_serializing_if = "Option::is_none", rename = "ipMode")] pub ip_mode: Option, - /// Ports is a list of records of service ports If used, every port defined in the service should have an entry in it + /// Ports is a list of records of service ports + /// If used, every port defined in the service should have an entry in it #[serde(default, skip_serializing_if = "Option::is_none")] pub ports: Option>, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshGatewayInstanceStatusLoadBalancerIngressPorts { - /// Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use CamelCase names - cloud provider specific error values must have names that comply with the format foo.example.com/CamelCase. --- The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + /// Error is to record the problem with the service port + /// The format of the error shall comply with the following rules: + /// - built-in error values shall be specified in this file and those shall use + /// CamelCase names + /// - cloud provider specific error values must have names that comply with the + /// format foo.example.com/CamelCase. + /// --- + /// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) #[serde(default, skip_serializing_if = "Option::is_none")] pub error: Option, /// Port is the port number of the service port of which status is recorded here pub port: i32, - /// Protocol is the protocol of the service port of which status is recorded here The supported values are: "TCP", "UDP", "SCTP" + /// Protocol is the protocol of the service port of which status is recorded here + /// The supported values are: "TCP", "UDP", "SCTP" pub protocol: String, } diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshhealthchecks.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshhealthchecks.rs index 919e8c96f..cd635190e 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshhealthchecks.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshhealthchecks.rs @@ -13,7 +13,9 @@ use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; #[kube(namespaced)] #[kube(schema = "disabled")] pub struct MeshHealthCheckSpec { - /// 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. + /// 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: MeshHealthCheckTargetRef, /// To list makes a match between the consumed services and corresponding configurations @@ -21,7 +23,9 @@ pub struct MeshHealthCheckSpec { pub to: Option>, } -/// 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. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshHealthCheckTargetRef { /// Kind of the referenced resource @@ -30,15 +34,23 @@ pub struct MeshHealthCheckTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 the policy takes an effect on. The resource could be either a real store object or virtual resource defined inplace. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshHealthCheckTargetRefKind { Mesh, @@ -52,71 +64,101 @@ pub enum MeshHealthCheckTargetRefKind { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshHealthCheckTo { - /// Default is a configuration specific to the group of destinations referenced in 'targetRef' + /// 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. + /// TargetRef is a reference to the resource that represents a group of + /// destinations. #[serde(rename = "targetRef")] pub target_ref: MeshHealthCheckToTargetRef, } -/// Default is a configuration specific to the group of destinations referenced in 'targetRef' +/// Default is a configuration specific to the group of destinations referenced in +/// 'targetRef' #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshHealthCheckToDefault { - /// If set to true, health check failure events will always be logged. If set to false, only the initial health check failure event will be logged. The default value is false. + /// If set to true, health check failure events will always be logged. If set + /// to false, only the initial health check failure event will be logged. The + /// default value is false. #[serde(default, skip_serializing_if = "Option::is_none", rename = "alwaysLogHealthCheckFailures")] pub always_log_health_check_failures: Option, - /// Specifies the path to the file where Envoy can log health check events. If empty, no event log will be written. + /// Specifies the path to the file where Envoy can log health check events. + /// If empty, no event log will be written. #[serde(default, skip_serializing_if = "Option::is_none", rename = "eventLogPath")] pub event_log_path: Option, - /// If set to true, Envoy will not consider any hosts when the cluster is in 'panic mode'. Instead, the cluster will fail all requests as if all hosts are unhealthy. This can help avoid potentially overwhelming a failing service. + /// If set to true, Envoy will not consider any hosts when the cluster is in + /// 'panic mode'. Instead, the cluster will fail all requests as if all hosts + /// are unhealthy. This can help avoid potentially overwhelming a failing + /// service. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failTrafficOnPanic")] pub fail_traffic_on_panic: Option, - /// GrpcHealthCheck defines gRPC configuration which will instruct the service the health check will be made for is a gRPC service. + /// GrpcHealthCheck defines gRPC configuration which will instruct the service + /// the health check will be made for is a gRPC service. #[serde(default, skip_serializing_if = "Option::is_none")] pub grpc: Option, - /// Allows to configure panic threshold for Envoy cluster. If not specified, the default is 50%. To disable panic mode, set to 0%. Either int or decimal represented as string. + /// Allows to configure panic threshold for Envoy cluster. If not specified, + /// the default is 50%. To disable panic mode, set to 0%. + /// Either int or decimal represented as string. #[serde(default, skip_serializing_if = "Option::is_none", rename = "healthyPanicThreshold")] pub healthy_panic_threshold: Option, /// Number of consecutive healthy checks before considering a host healthy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "healthyThreshold")] pub healthy_threshold: Option, - /// HttpHealthCheck defines HTTP configuration which will instruct the service the health check will be made for is an HTTP service. + /// HttpHealthCheck defines HTTP configuration which will instruct the service + /// the health check will be made for is an HTTP service. #[serde(default, skip_serializing_if = "Option::is_none")] pub http: Option, - /// If specified, Envoy will start health checking after a random time in ms between 0 and initialJitter. This only applies to the first health check. + /// If specified, Envoy will start health checking after a random time in + /// ms between 0 and initialJitter. This only applies to the first health + /// check. #[serde(default, skip_serializing_if = "Option::is_none", rename = "initialJitter")] pub initial_jitter: Option, /// Interval between consecutive health checks. #[serde(default, skip_serializing_if = "Option::is_none")] pub interval: Option, - /// If specified, during every interval Envoy will add IntervalJitter to the wait time. + /// If specified, during every interval Envoy will add IntervalJitter to the + /// wait time. #[serde(default, skip_serializing_if = "Option::is_none", rename = "intervalJitter")] pub interval_jitter: Option, - /// If specified, during every interval Envoy will add IntervalJitter * IntervalJitterPercent / 100 to the wait time. If IntervalJitter and IntervalJitterPercent are both set, both of them will be used to increase the wait time. + /// If specified, during every interval Envoy will add IntervalJitter * + /// IntervalJitterPercent / 100 to the wait time. If IntervalJitter and + /// IntervalJitterPercent are both set, both of them will be used to + /// increase the wait time. #[serde(default, skip_serializing_if = "Option::is_none", rename = "intervalJitterPercent")] pub interval_jitter_percent: Option, - /// The "no traffic interval" is a special health check interval that is used when a cluster has never had traffic routed to it. This lower interval allows cluster information to be kept up to date, without sending a potentially large amount of active health checking traffic for no reason. Once a cluster has been used for traffic routing, Envoy will shift back to using the standard health check interval that is defined. Note that this interval takes precedence over any other. The default value for "no traffic interval" is 60 seconds. + /// The "no traffic interval" is a special health check interval that is used + /// when a cluster has never had traffic routed to it. This lower interval + /// allows cluster information to be kept up to date, without sending a + /// potentially large amount of active health checking traffic for no reason. + /// Once a cluster has been used for traffic routing, Envoy will shift back + /// to using the standard health check interval that is defined. Note that + /// this interval takes precedence over any other. The default value for "no + /// traffic interval" is 60 seconds. #[serde(default, skip_serializing_if = "Option::is_none", rename = "noTrafficInterval")] pub no_traffic_interval: Option, /// Reuse health check connection between health checks. Default is true. #[serde(default, skip_serializing_if = "Option::is_none", rename = "reuseConnection")] pub reuse_connection: Option, - /// TcpHealthCheck defines configuration for specifying bytes to send and expected response during the health check + /// TcpHealthCheck defines configuration for specifying bytes to send and + /// expected response during the health check #[serde(default, skip_serializing_if = "Option::is_none")] pub tcp: Option, /// Maximum time to wait for a health check response. #[serde(default, skip_serializing_if = "Option::is_none")] pub timeout: Option, - /// Number of consecutive unhealthy checks before considering a host unhealthy. + /// Number of consecutive unhealthy checks before considering a host + /// unhealthy. #[serde(default, skip_serializing_if = "Option::is_none", rename = "unhealthyThreshold")] pub unhealthy_threshold: Option, } -/// GrpcHealthCheck defines gRPC configuration which will instruct the service the health check will be made for is a gRPC service. +/// GrpcHealthCheck defines gRPC configuration which will instruct the service +/// the health check will be made for is a gRPC service. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshHealthCheckToDefaultGrpc { - /// The value of the :authority header in the gRPC health check request, by default name of the cluster this health check is associated with + /// The value of the :authority header in the gRPC health check request, + /// by default name of the cluster this health check is associated with #[serde(default, skip_serializing_if = "Option::is_none")] pub authority: Option, /// If true the GrpcHealthCheck is disabled @@ -127,7 +169,8 @@ pub struct MeshHealthCheckToDefaultGrpc { pub service_name: Option, } -/// HttpHealthCheck defines HTTP configuration which will instruct the service the health check will be made for is an HTTP service. +/// HttpHealthCheck defines HTTP configuration which will instruct the service +/// the health check will be made for is an HTTP service. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshHealthCheckToDefaultHttp { /// If true the HttpHealthCheck is disabled @@ -136,15 +179,18 @@ pub struct MeshHealthCheckToDefaultHttp { /// List of HTTP response statuses which are considered healthy #[serde(default, skip_serializing_if = "Option::is_none", rename = "expectedStatuses")] pub expected_statuses: Option>, - /// The HTTP path which will be requested during the health check (ie. /health) + /// The HTTP path which will be requested during the health check + /// (ie. /health) #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// The list of HTTP headers which should be added to each health check request + /// The list of HTTP headers which should be added to each health check + /// request #[serde(default, skip_serializing_if = "Option::is_none", rename = "requestHeadersToAdd")] pub request_headers_to_add: Option, } -/// The list of HTTP headers which should be added to each health check request +/// The list of HTTP headers which should be added to each health check +/// request #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshHealthCheckToDefaultHttpRequestHeadersToAdd { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -165,13 +211,17 @@ pub struct MeshHealthCheckToDefaultHttpRequestHeadersToAddSet { pub value: String, } -/// TcpHealthCheck defines configuration for specifying bytes to send and expected response during the health check +/// TcpHealthCheck defines configuration for specifying bytes to send and +/// expected response during the health check #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshHealthCheckToDefaultTcp { /// If true the TcpHealthCheck is disabled #[serde(default, skip_serializing_if = "Option::is_none")] pub disabled: Option, - /// List of Base64 encoded blocks of strings expected as a response. When checking the response, "fuzzy" matching is performed such that each block must be found, and in the order specified, but not necessarily contiguous. If not provided or empty, checks will be performed as "connect only" and be marked as successful when TCP connection is successfully established. + /// List of Base64 encoded blocks of strings expected as a response. When checking the response, + /// "fuzzy" matching is performed such that each block must be found, and + /// in the order specified, but not necessarily contiguous. + /// If not provided or empty, checks will be performed as "connect only" and be marked as successful when TCP connection is successfully established. #[serde(default, skip_serializing_if = "Option::is_none")] pub receive: Option>, /// Base64 encoded content of the message which will be sent during the health check to the target @@ -179,7 +229,8 @@ pub struct MeshHealthCheckToDefaultTcp { pub send: Option, } -/// TargetRef is a reference to the resource that represents a group of destinations. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshHealthCheckToTargetRef { /// Kind of the referenced resource @@ -188,15 +239,22 @@ pub struct MeshHealthCheckToTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshHealthCheckToTargetRefKind { Mesh, diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshhttproutes.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshhttproutes.rs index 182368280..39b814ec0 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshhttproutes.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshhttproutes.rs @@ -13,7 +13,9 @@ use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; #[kube(namespaced)] #[kube(schema = "disabled")] pub struct MeshHTTPRouteSpec { - /// 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. + /// 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(default, skip_serializing_if = "Option::is_none", rename = "targetRef")] pub target_ref: Option, /// To matches destination services of requests and holds configuration. @@ -21,7 +23,9 @@ pub struct MeshHTTPRouteSpec { pub to: Option>, } -/// 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. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshHTTPRouteTargetRef { /// Kind of the referenced resource @@ -30,15 +34,23 @@ pub struct MeshHTTPRouteTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 the policy takes an effect on. The resource could be either a real store object or virtual resource defined inplace. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshHTTPRouteTargetRefKind { Mesh, @@ -52,26 +64,34 @@ pub enum MeshHTTPRouteTargetRefKind { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshHTTPRouteTo { - /// Hostnames is only valid when targeting MeshGateway and limits the effects of the rules to requests to this hostname. Given hostnames must intersect with the hostname of the listeners the route attaches to. + /// Hostnames is only valid when targeting MeshGateway and limits the + /// effects of the rules to requests to this hostname. + /// Given hostnames must intersect with the hostname of the listeners the + /// route attaches to. #[serde(default, skip_serializing_if = "Option::is_none")] pub hostnames: Option>, - /// Rules contains the routing rules applies to a combination of top-level targetRef and the targetRef in this entry. + /// Rules contains the routing rules applies to a combination of top-level + /// targetRef and the targetRef in this entry. #[serde(default, skip_serializing_if = "Option::is_none")] pub rules: Option>, - /// TargetRef is a reference to the resource that represents a group of request destinations. + /// TargetRef is a reference to the resource that represents a group of + /// request destinations. #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetRef")] pub target_ref: Option, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshHTTPRouteToRules { - /// Default holds routing rules that can be merged with rules from other policies. + /// Default holds routing rules that can be merged with rules from other + /// policies. pub default: MeshHTTPRouteToRulesDefault, - /// Matches describes how to match HTTP requests this rule should be applied to. + /// Matches describes how to match HTTP requests this rule should be applied + /// to. pub matches: Vec, } -/// Default holds routing rules that can be merged with rules from other policies. +/// Default holds routing rules that can be merged with rules from other +/// policies. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshHTTPRouteToRulesDefault { #[serde(default, skip_serializing_if = "Option::is_none", rename = "backendRefs")] @@ -89,10 +109,16 @@ pub struct MeshHTTPRouteToRulesDefaultBackendRefs { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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>, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -113,14 +139,18 @@ pub enum MeshHTTPRouteToRulesDefaultBackendRefsKind { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshHTTPRouteToRulesDefaultFilters { - /// Only one action is supported per header name. Configuration to set or add multiple values for a header must use RFC 7230 header value formatting, separating each value with a comma. + /// Only one action is supported per header name. + /// Configuration to set or add multiple values for a header must use RFC 7230 + /// header value formatting, separating each value with a comma. #[serde(default, skip_serializing_if = "Option::is_none", rename = "requestHeaderModifier")] pub request_header_modifier: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "requestMirror")] pub request_mirror: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "requestRedirect")] pub request_redirect: Option, - /// Only one action is supported per header name. Configuration to set or add multiple values for a header must use RFC 7230 header value formatting, separating each value with a comma. + /// Only one action is supported per header name. + /// Configuration to set or add multiple values for a header must use RFC 7230 + /// header value formatting, separating each value with a comma. #[serde(default, skip_serializing_if = "Option::is_none", rename = "responseHeaderModifier")] pub response_header_modifier: Option, #[serde(rename = "type")] @@ -129,7 +159,9 @@ pub struct MeshHTTPRouteToRulesDefaultFilters { pub url_rewrite: Option, } -/// Only one action is supported per header name. Configuration to set or add multiple values for a header must use RFC 7230 header value formatting, separating each value with a comma. +/// Only one action is supported per header name. +/// Configuration to set or add multiple values for a header must use RFC 7230 +/// header value formatting, separating each value with a comma. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshHTTPRouteToRulesDefaultFiltersRequestHeaderModifier { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -157,7 +189,8 @@ pub struct MeshHTTPRouteToRulesDefaultFiltersRequestMirror { /// TargetRef defines structure that allows attaching policy to various objects #[serde(rename = "backendRef")] pub backend_ref: MeshHTTPRouteToRulesDefaultFiltersRequestMirrorBackendRef, - /// Percentage of requests to mirror. If not specified, all requests to the target cluster will be mirrored. + /// Percentage of requests to mirror. If not specified, all requests + /// to the target cluster will be mirrored. #[serde(default, skip_serializing_if = "Option::is_none")] pub percentage: Option, } @@ -171,10 +204,16 @@ pub struct MeshHTTPRouteToRulesDefaultFiltersRequestMirrorBackendRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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>, } @@ -193,14 +232,24 @@ pub enum MeshHTTPRouteToRulesDefaultFiltersRequestMirrorBackendRefKind { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshHTTPRouteToRulesDefaultFiltersRequestRedirect { - /// PreciseHostname is the fully qualified domain name of a network host. This matches the RFC 1123 definition of a hostname with 1 notable exception that numeric IP addresses are not allowed. - /// Note that as per RFC1035 and RFC1123, a *label* must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed. + /// PreciseHostname is the fully qualified domain name of a network host. This + /// matches the RFC 1123 definition of a hostname with 1 notable exception that + /// numeric IP addresses are not allowed. + /// + /// + /// Note that as per RFC1035 and RFC1123, a *label* must consist of lower case + /// alphanumeric characters or '-', and must start and end with an alphanumeric + /// character. No other punctuation is allowed. #[serde(default, skip_serializing_if = "Option::is_none")] pub hostname: Option, - /// Path defines parameters used to modify the path of the incoming request. The modified path is then used to construct the location header. When empty, the request path is used as-is. + /// Path defines parameters used to modify the path of the incoming request. + /// The modified path is then used to construct the location header. + /// When empty, the request path is used as-is. #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// Port is the port to be used in the value of the `Location` header in the response. When empty, port (if specified) of the request is used. + /// Port is the port to be used in the value of the `Location` + /// header in the response. + /// When empty, port (if specified) of the request is used. #[serde(default, skip_serializing_if = "Option::is_none")] pub port: Option, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -210,7 +259,9 @@ pub struct MeshHTTPRouteToRulesDefaultFiltersRequestRedirect { pub status_code: Option, } -/// Path defines parameters used to modify the path of the incoming request. The modified path is then used to construct the location header. When empty, the request path is used as-is. +/// Path defines parameters used to modify the path of the incoming request. +/// The modified path is then used to construct the location header. +/// When empty, the request path is used as-is. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshHTTPRouteToRulesDefaultFiltersRequestRedirectPath { #[serde(default, skip_serializing_if = "Option::is_none", rename = "replaceFullPath")] @@ -221,7 +272,9 @@ pub struct MeshHTTPRouteToRulesDefaultFiltersRequestRedirectPath { pub r#type: MeshHTTPRouteToRulesDefaultFiltersRequestRedirectPathType, } -/// Path defines parameters used to modify the path of the incoming request. The modified path is then used to construct the location header. When empty, the request path is used as-is. +/// Path defines parameters used to modify the path of the incoming request. +/// The modified path is then used to construct the location header. +/// When empty, the request path is used as-is. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshHTTPRouteToRulesDefaultFiltersRequestRedirectPathType { ReplaceFullPath, @@ -250,7 +303,9 @@ pub enum MeshHTTPRouteToRulesDefaultFiltersRequestRedirectStatusCode { r#_308, } -/// Only one action is supported per header name. Configuration to set or add multiple values for a header must use RFC 7230 header value formatting, separating each value with a comma. +/// Only one action is supported per header name. +/// Configuration to set or add multiple values for a header must use RFC 7230 +/// header value formatting, separating each value with a comma. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshHTTPRouteToRulesDefaultFiltersResponseHeaderModifier { #[serde(default, skip_serializing_if = "Option::is_none")] @@ -285,7 +340,8 @@ pub enum MeshHTTPRouteToRulesDefaultFiltersType { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshHTTPRouteToRulesDefaultFiltersUrlRewrite { - /// HostToBackendHostname rewrites the hostname to the hostname of the upstream host. This option is only available when targeting MeshGateways. + /// HostToBackendHostname rewrites the hostname to the hostname of the + /// upstream host. This option is only available when targeting MeshGateways. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostToBackendHostname")] pub host_to_backend_hostname: Option, /// Hostname is the value to be used to replace the host header value during forwarding. @@ -322,15 +378,18 @@ pub struct MeshHTTPRouteToRulesMatches { pub method: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// QueryParams matches based on HTTP URL query parameters. Multiple matches are ANDed together such that all listed matches must succeed. + /// QueryParams matches based on HTTP URL query parameters. Multiple matches + /// are ANDed together such that all listed matches must succeed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "queryParams")] pub query_params: Option>, } -/// HeaderMatch describes how to select an HTTP route by matching HTTP request headers. +/// HeaderMatch describes how to select an HTTP route by matching HTTP request +/// headers. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshHTTPRouteToRulesMatchesHeaders { - /// Name is the name of the HTTP Header to be matched. Name MUST be lower case as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2). + /// Name is the name of the HTTP Header to be matched. Name MUST be lower case + /// as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2). pub name: String, /// Type specifies how to match against the value of the header. #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] @@ -340,7 +399,8 @@ pub struct MeshHTTPRouteToRulesMatchesHeaders { pub value: Option, } -/// HeaderMatch describes how to select an HTTP route by matching HTTP request headers. +/// HeaderMatch describes how to select an HTTP route by matching HTTP request +/// headers. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshHTTPRouteToRulesMatchesHeadersType { Exact, @@ -376,7 +436,8 @@ pub enum MeshHTTPRouteToRulesMatchesMethod { pub struct MeshHTTPRouteToRulesMatchesPath { #[serde(rename = "type")] pub r#type: MeshHTTPRouteToRulesMatchesPathType, - /// Exact or prefix matches must be an absolute path. A prefix matches only if separated by a slash or the entire path. + /// Exact or prefix matches must be an absolute path. A prefix matches only + /// if separated by a slash or the entire path. pub value: String, } @@ -401,7 +462,8 @@ pub enum MeshHTTPRouteToRulesMatchesQueryParamsType { RegularExpression, } -/// TargetRef is a reference to the resource that represents a group of request destinations. +/// TargetRef is a reference to the resource that represents a group of +/// request destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshHTTPRouteToTargetRef { /// Kind of the referenced resource @@ -410,15 +472,22 @@ pub struct MeshHTTPRouteToTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 request destinations. +/// TargetRef is a reference to the resource that represents a group of +/// request destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshHTTPRouteToTargetRefKind { Mesh, diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshloadbalancingstrategies.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshloadbalancingstrategies.rs index 5bd3c7a72..1610b61a8 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshloadbalancingstrategies.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshloadbalancingstrategies.rs @@ -13,7 +13,9 @@ use k8s_openapi::apimachinery::pkg::util::intstr::IntOrString; #[kube(namespaced)] #[kube(schema = "disabled")] pub struct MeshLoadBalancingStrategySpec { - /// 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. + /// 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: MeshLoadBalancingStrategyTargetRef, /// To list makes a match between the consumed services and corresponding configurations @@ -21,7 +23,9 @@ pub struct MeshLoadBalancingStrategySpec { pub to: Option>, } -/// 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. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyTargetRef { /// Kind of the referenced resource @@ -30,15 +34,23 @@ pub struct MeshLoadBalancingStrategyTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 the policy takes an effect on. The resource could be either a real store object or virtual resource defined inplace. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshLoadBalancingStrategyTargetRefKind { Mesh, @@ -52,15 +64,18 @@ pub enum MeshLoadBalancingStrategyTargetRefKind { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyTo { - /// Default is a configuration specific to the group of destinations referenced in 'targetRef' + /// 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. + /// TargetRef is a reference to the resource that represents a group of + /// destinations. #[serde(rename = "targetRef")] pub target_ref: MeshLoadBalancingStrategyToTargetRef, } -/// Default is a configuration specific to the group of destinations referenced in 'targetRef' +/// Default is a configuration specific to the group of destinations referenced in +/// 'targetRef' #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToDefault { /// LoadBalancer allows to specify load balancing algorithm. @@ -74,43 +89,69 @@ pub struct MeshLoadBalancingStrategyToDefault { /// LoadBalancer allows to specify load balancing algorithm. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToDefaultLoadBalancer { - /// LeastRequest selects N random available hosts as specified in 'choiceCount' (2 by default) and picks the host which has the fewest active requests + /// LeastRequest selects N random available hosts as specified in 'choiceCount' (2 by default) + /// and picks the host which has the fewest active requests #[serde(default, skip_serializing_if = "Option::is_none", rename = "leastRequest")] pub least_request: Option, - /// Maglev implements consistent hashing to upstream hosts. Maglev can be used as a drop in replacement for the ring hash load balancer any place in which consistent hashing is desired. + /// Maglev implements consistent hashing to upstream hosts. Maglev can be used as + /// a drop in replacement for the ring hash load balancer any place in which + /// consistent hashing is desired. #[serde(default, skip_serializing_if = "Option::is_none")] pub maglev: Option, - /// Random selects a random available host. The random load balancer generally performs better than round-robin if no health checking policy is configured. Random selection avoids bias towards the host in the set that comes after a failed host. + /// Random selects a random available host. The random load balancer generally + /// performs better than round-robin if no health checking policy is configured. + /// Random selection avoids bias towards the host in the set that comes after a failed host. #[serde(default, skip_serializing_if = "Option::is_none")] pub random: Option, - /// RingHash implements consistent hashing to upstream hosts. Each host is mapped onto a circle (the “ring”) by hashing its address; each request is then routed to a host by hashing some property of the request, and finding the nearest corresponding host clockwise around the ring. + /// RingHash implements consistent hashing to upstream hosts. Each host is mapped + /// onto a circle (the “ring”) by hashing its address; each request is then routed + /// to a host by hashing some property of the request, and finding the nearest + /// corresponding host clockwise around the ring. #[serde(default, skip_serializing_if = "Option::is_none", rename = "ringHash")] pub ring_hash: Option, - /// RoundRobin is a load balancing algorithm that distributes requests across available upstream hosts in round-robin order. + /// RoundRobin is a load balancing algorithm that distributes requests + /// across available upstream hosts in round-robin order. #[serde(default, skip_serializing_if = "Option::is_none", rename = "roundRobin")] pub round_robin: Option, #[serde(rename = "type")] pub r#type: MeshLoadBalancingStrategyToDefaultLoadBalancerType, } -/// LeastRequest selects N random available hosts as specified in 'choiceCount' (2 by default) and picks the host which has the fewest active requests +/// LeastRequest selects N random available hosts as specified in 'choiceCount' (2 by default) +/// and picks the host which has the fewest active requests #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerLeastRequest { - /// ActiveRequestBias refers to dynamic weights applied when hosts have varying load balancing weights. A higher value here aggressively reduces the weight of endpoints that are currently handling active requests. In essence, the higher the ActiveRequestBias value, the more forcefully it reduces the load balancing weight of endpoints that are actively serving requests. + /// ActiveRequestBias refers to dynamic weights applied when hosts have varying load + /// balancing weights. A higher value here aggressively reduces the weight of endpoints + /// that are currently handling active requests. In essence, the higher the ActiveRequestBias + /// value, the more forcefully it reduces the load balancing weight of endpoints that are + /// actively serving requests. #[serde(default, skip_serializing_if = "Option::is_none", rename = "activeRequestBias")] pub active_request_bias: Option, - /// ChoiceCount is the number of random healthy hosts from which the host with the fewest active requests will be chosen. Defaults to 2 so that Envoy performs two-choice selection if the field is not set. + /// ChoiceCount is the number of random healthy hosts from which the host with + /// the fewest active requests will be chosen. Defaults to 2 so that Envoy performs + /// two-choice selection if the field is not set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "choiceCount")] pub choice_count: Option, } -/// Maglev implements consistent hashing to upstream hosts. Maglev can be used as a drop in replacement for the ring hash load balancer any place in which consistent hashing is desired. +/// Maglev implements consistent hashing to upstream hosts. Maglev can be used as +/// a drop in replacement for the ring hash load balancer any place in which +/// consistent hashing is desired. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerMaglev { - /// HashPolicies specify a list of request/connection properties that are used to calculate a hash. These hash policies are executed in the specified order. If a hash policy has the “terminal” attribute set to true, and there is already a hash generated, the hash is returned immediately, ignoring the rest of the hash policy list. + /// HashPolicies specify a list of request/connection properties that are used to calculate a hash. + /// These hash policies are executed in the specified order. If a hash policy has the “terminal” attribute + /// set to true, and there is already a hash generated, the hash is returned immediately, + /// ignoring the rest of the hash policy list. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hashPolicies")] pub hash_policies: Option>, - /// The table size for Maglev hashing. Maglev aims for “minimal disruption” rather than an absolute guarantee. Minimal disruption means that when the set of upstream hosts change, a connection will likely be sent to the same upstream as it was before. Increasing the table size reduces the amount of disruption. The table size must be prime number limited to 5000011. If it is not specified, the default is 65537. + /// The table size for Maglev hashing. Maglev aims for “minimal disruption” + /// rather than an absolute guarantee. Minimal disruption means that when + /// the set of upstream hosts change, a connection will likely be sent + /// to the same upstream as it was before. Increasing the table size reduces + /// the amount of disruption. The table size must be prime number limited to 5000011. + /// If it is not specified, the default is 65537. #[serde(default, skip_serializing_if = "Option::is_none", rename = "tableSize")] pub table_size: Option, } @@ -127,7 +168,10 @@ pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerMaglevHashPolicies { pub header: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "queryParameter")] pub query_parameter: Option, - /// Terminal is a flag that short-circuits the hash computing. This field provides a ‘fallback’ style of configuration: “if a terminal policy doesn’t work, fallback to rest of the policy list”, it saves time when the terminal policy works. If true, and there is already a hash computed, ignore rest of the list of hash polices. + /// Terminal is a flag that short-circuits the hash computing. This field provides + /// a ‘fallback’ style of configuration: “if a terminal policy doesn’t work, fallback + /// to rest of the policy list”, it saves time when the terminal policy works. + /// If true, and there is already a hash computed, ignore rest of the list of hash polices. #[serde(default, skip_serializing_if = "Option::is_none")] pub terminal: Option, #[serde(rename = "type")] @@ -155,7 +199,9 @@ pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerMaglevHashPoliciesCooki #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerMaglevHashPoliciesFilterState { - /// The name of the Object in the per-request filterState, which is an Envoy::Hashable object. If there is no data associated with the key, or the stored object is not Envoy::Hashable, no hash will be produced. + /// The name of the Object in the per-request filterState, which is + /// an Envoy::Hashable object. If there is no data associated with the key, + /// or the stored object is not Envoy::Hashable, no hash will be produced. pub key: String, } @@ -167,7 +213,9 @@ pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerMaglevHashPoliciesHeade #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerMaglevHashPoliciesQueryParameter { - /// The name of the URL query parameter that will be used to obtain the hash key. If the parameter is not present, no hash will be produced. Query parameter names are case-sensitive. + /// The name of the URL query parameter that will be used to obtain the hash key. + /// If the parameter is not present, no hash will be produced. Query parameter names + /// are case-sensitive. pub name: String, } @@ -181,29 +229,44 @@ pub enum MeshLoadBalancingStrategyToDefaultLoadBalancerMaglevHashPoliciesType { FilterState, } -/// Random selects a random available host. The random load balancer generally performs better than round-robin if no health checking policy is configured. Random selection avoids bias towards the host in the set that comes after a failed host. +/// Random selects a random available host. The random load balancer generally +/// performs better than round-robin if no health checking policy is configured. +/// Random selection avoids bias towards the host in the set that comes after a failed host. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerRandom { } -/// RingHash implements consistent hashing to upstream hosts. Each host is mapped onto a circle (the “ring”) by hashing its address; each request is then routed to a host by hashing some property of the request, and finding the nearest corresponding host clockwise around the ring. +/// RingHash implements consistent hashing to upstream hosts. Each host is mapped +/// onto a circle (the “ring”) by hashing its address; each request is then routed +/// to a host by hashing some property of the request, and finding the nearest +/// corresponding host clockwise around the ring. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerRingHash { - /// HashFunction is a function used to hash hosts onto the ketama ring. The value defaults to XX_HASH. Available values – XX_HASH, MURMUR_HASH_2. + /// HashFunction is a function used to hash hosts onto the ketama ring. + /// The value defaults to XX_HASH. Available values – XX_HASH, MURMUR_HASH_2. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hashFunction")] pub hash_function: Option, - /// HashPolicies specify a list of request/connection properties that are used to calculate a hash. These hash policies are executed in the specified order. If a hash policy has the “terminal” attribute set to true, and there is already a hash generated, the hash is returned immediately, ignoring the rest of the hash policy list. + /// HashPolicies specify a list of request/connection properties that are used to calculate a hash. + /// These hash policies are executed in the specified order. If a hash policy has the “terminal” attribute + /// set to true, and there is already a hash generated, the hash is returned immediately, + /// ignoring the rest of the hash policy list. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hashPolicies")] pub hash_policies: Option>, - /// Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, but can be lowered to further constrain resource use. + /// Maximum hash ring size. Defaults to 8M entries, and limited to 8M entries, + /// but can be lowered to further constrain resource use. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxRingSize")] pub max_ring_size: Option, - /// Minimum hash ring size. The larger the ring is (that is, the more hashes there are for each provided host) the better the request distribution will reflect the desired weights. Defaults to 1024 entries, and limited to 8M entries. + /// Minimum hash ring size. The larger the ring is (that is, + /// the more hashes there are for each provided host) the better the request distribution + /// will reflect the desired weights. Defaults to 1024 entries, and limited to 8M entries. #[serde(default, skip_serializing_if = "Option::is_none", rename = "minRingSize")] pub min_ring_size: Option, } -/// RingHash implements consistent hashing to upstream hosts. Each host is mapped onto a circle (the “ring”) by hashing its address; each request is then routed to a host by hashing some property of the request, and finding the nearest corresponding host clockwise around the ring. +/// RingHash implements consistent hashing to upstream hosts. Each host is mapped +/// onto a circle (the “ring”) by hashing its address; each request is then routed +/// to a host by hashing some property of the request, and finding the nearest +/// corresponding host clockwise around the ring. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshLoadBalancingStrategyToDefaultLoadBalancerRingHashHashFunction { #[serde(rename = "XXHash")] @@ -223,7 +286,10 @@ pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerRingHashHashPolicies { pub header: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "queryParameter")] pub query_parameter: Option, - /// Terminal is a flag that short-circuits the hash computing. This field provides a ‘fallback’ style of configuration: “if a terminal policy doesn’t work, fallback to rest of the policy list”, it saves time when the terminal policy works. If true, and there is already a hash computed, ignore rest of the list of hash polices. + /// Terminal is a flag that short-circuits the hash computing. This field provides + /// a ‘fallback’ style of configuration: “if a terminal policy doesn’t work, fallback + /// to rest of the policy list”, it saves time when the terminal policy works. + /// If true, and there is already a hash computed, ignore rest of the list of hash polices. #[serde(default, skip_serializing_if = "Option::is_none")] pub terminal: Option, #[serde(rename = "type")] @@ -251,7 +317,9 @@ pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerRingHashHashPoliciesCoo #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerRingHashHashPoliciesFilterState { - /// The name of the Object in the per-request filterState, which is an Envoy::Hashable object. If there is no data associated with the key, or the stored object is not Envoy::Hashable, no hash will be produced. + /// The name of the Object in the per-request filterState, which is + /// an Envoy::Hashable object. If there is no data associated with the key, + /// or the stored object is not Envoy::Hashable, no hash will be produced. pub key: String, } @@ -263,7 +331,9 @@ pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerRingHashHashPoliciesHea #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerRingHashHashPoliciesQueryParameter { - /// The name of the URL query parameter that will be used to obtain the hash key. If the parameter is not present, no hash will be produced. Query parameter names are case-sensitive. + /// The name of the URL query parameter that will be used to obtain the hash key. + /// If the parameter is not present, no hash will be produced. Query parameter names + /// are case-sensitive. pub name: String, } @@ -277,7 +347,8 @@ pub enum MeshLoadBalancingStrategyToDefaultLoadBalancerRingHashHashPoliciesType FilterState, } -/// RoundRobin is a load balancing algorithm that distributes requests across available upstream hosts in round-robin order. +/// RoundRobin is a load balancing algorithm that distributes requests +/// across available upstream hosts in round-robin order. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToDefaultLoadBalancerRoundRobin { } @@ -295,10 +366,12 @@ pub enum MeshLoadBalancingStrategyToDefaultLoadBalancerType { /// LocalityAwareness contains configuration for locality aware load balancing. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToDefaultLocalityAwareness { - /// CrossZone defines locality aware load balancing priorities when dataplane proxies inside local zone are unavailable + /// CrossZone defines locality aware load balancing priorities when dataplane proxies inside local zone + /// are unavailable #[serde(default, skip_serializing_if = "Option::is_none", rename = "crossZone")] pub cross_zone: Option, - /// Disabled allows to disable locality-aware load balancing. When disabled requests are distributed across all endpoints regardless of locality. + /// Disabled allows to disable locality-aware load balancing. + /// When disabled requests are distributed across all endpoints regardless of locality. #[serde(default, skip_serializing_if = "Option::is_none")] pub disabled: Option, /// LocalZone defines locality aware load balancing priorities between dataplane proxies inside a zone @@ -306,13 +379,18 @@ pub struct MeshLoadBalancingStrategyToDefaultLocalityAwareness { pub local_zone: Option, } -/// CrossZone defines locality aware load balancing priorities when dataplane proxies inside local zone are unavailable +/// CrossZone defines locality aware load balancing priorities when dataplane proxies inside local zone +/// are unavailable #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToDefaultLocalityAwarenessCrossZone { /// Failover defines list of load balancing rules in order of priority #[serde(default, skip_serializing_if = "Option::is_none")] pub failover: Option>, - /// FailoverThreshold defines the percentage of live destination dataplane proxies below which load balancing to the next priority starts. Example: If you configure failoverThreshold to 70, and you have deployed 10 destination dataplane proxies. Load balancing to next priority will start when number of live destination dataplane proxies drops below 7. Default 50 + /// FailoverThreshold defines the percentage of live destination dataplane proxies below which load balancing to the + /// next priority starts. + /// Example: If you configure failoverThreshold to 70, and you have deployed 10 destination dataplane proxies. + /// Load balancing to next priority will start when number of live destination dataplane proxies drops below 7. + /// Default 50 #[serde(default, skip_serializing_if = "Option::is_none", rename = "failoverThreshold")] pub failover_threshold: Option, } @@ -351,7 +429,11 @@ pub enum MeshLoadBalancingStrategyToDefaultLocalityAwarenessCrossZoneFailoverToT AnyExcept, } -/// FailoverThreshold defines the percentage of live destination dataplane proxies below which load balancing to the next priority starts. Example: If you configure failoverThreshold to 70, and you have deployed 10 destination dataplane proxies. Load balancing to next priority will start when number of live destination dataplane proxies drops below 7. Default 50 +/// FailoverThreshold defines the percentage of live destination dataplane proxies below which load balancing to the +/// next priority starts. +/// Example: If you configure failoverThreshold to 70, and you have deployed 10 destination dataplane proxies. +/// Load balancing to next priority will start when number of live destination dataplane proxies drops below 7. +/// Default 50 #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToDefaultLocalityAwarenessCrossZoneFailoverThreshold { pub percentage: IntOrString, @@ -369,12 +451,18 @@ pub struct MeshLoadBalancingStrategyToDefaultLocalityAwarenessLocalZone { pub struct MeshLoadBalancingStrategyToDefaultLocalityAwarenessLocalZoneAffinityTags { /// Key defines tag for which affinity is configured pub key: String, - /// Weight of the tag used for load balancing. The bigger the weight the bigger the priority. Percentage of local traffic load balanced to tag is computed by dividing weight by sum of weights from all tags. For example with two affinity tags first with weight 80 and second with weight 20, then 80% of traffic will be redirected to the first tag, and 20% of traffic will be redirected to second one. Setting weights is not mandatory. When weights are not set control plane will compute default weight based on list order. Default: If you do not specify weight we will adjust them so that 90% traffic goes to first tag, 9% to next, and 1% to third and so on. + /// Weight of the tag used for load balancing. The bigger the weight the bigger the priority. + /// Percentage of local traffic load balanced to tag is computed by dividing weight by sum of weights from all tags. + /// For example with two affinity tags first with weight 80 and second with weight 20, + /// then 80% of traffic will be redirected to the first tag, and 20% of traffic will be redirected to second one. + /// Setting weights is not mandatory. When weights are not set control plane will compute default weight based on list order. + /// Default: If you do not specify weight we will adjust them so that 90% traffic goes to first tag, 9% to next, and 1% to third and so on. #[serde(default, skip_serializing_if = "Option::is_none")] pub weight: Option, } -/// TargetRef is a reference to the resource that represents a group of destinations. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshLoadBalancingStrategyToTargetRef { /// Kind of the referenced resource @@ -383,15 +471,22 @@ pub struct MeshLoadBalancingStrategyToTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshLoadBalancingStrategyToTargetRefKind { Mesh, diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshproxypatches.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshproxypatches.rs index 15de88580..a66ac5bb7 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshproxypatches.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshproxypatches.rs @@ -13,14 +13,18 @@ use std::collections::HashMap; #[kube(namespaced)] #[kube(schema = "disabled")] pub struct MeshProxyPatchSpec { - /// Default is a configuration specific to the group of destinations referenced in 'targetRef'. + /// Default is a configuration specific to the group of destinations + /// referenced in 'targetRef'. pub default: MeshProxyPatchDefault, - /// 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. + /// 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: MeshProxyPatchTargetRef, } -/// Default is a configuration specific to the group of destinations referenced in 'targetRef'. +/// Default is a configuration specific to the group of destinations +/// referenced in 'targetRef'. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshProxyPatchDefault { /// AppendModifications is a list of modifications applied on the selected proxy. @@ -33,7 +37,8 @@ pub struct MeshProxyPatchDefaultAppendModifications { /// Cluster is a modification of Envoy's Cluster resource. #[serde(default, skip_serializing_if = "Option::is_none")] pub cluster: Option, - /// HTTPFilter is a modification of Envoy HTTP Filter available in HTTP Connection Manager in a Listener resource. + /// HTTPFilter is a modification of Envoy HTTP Filter + /// available in HTTP Connection Manager in a Listener resource. #[serde(default, skip_serializing_if = "Option::is_none", rename = "httpFilter")] pub http_filter: Option, /// Listener is a modification of Envoy's Listener resource. @@ -42,7 +47,8 @@ pub struct MeshProxyPatchDefaultAppendModifications { /// NetworkFilter is a modification of Envoy Listener's filter. #[serde(default, skip_serializing_if = "Option::is_none", rename = "networkFilter")] pub network_filter: Option, - /// VirtualHost is a modification of Envoy's VirtualHost referenced in HTTP Connection Manager in a Listener resource. + /// VirtualHost is a modification of Envoy's VirtualHost + /// referenced in HTTP Connection Manager in a Listener resource. #[serde(default, skip_serializing_if = "Option::is_none", rename = "virtualHost")] pub virtual_host: Option, } @@ -50,7 +56,8 @@ pub struct MeshProxyPatchDefaultAppendModifications { /// Cluster is a modification of Envoy's Cluster resource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshProxyPatchDefaultAppendModificationsCluster { - /// JsonPatches specifies list of jsonpatches to apply to on Envoy's Cluster resource + /// JsonPatches specifies list of jsonpatches to apply to on Envoy's Cluster + /// resource #[serde(default, skip_serializing_if = "Option::is_none", rename = "jsonPatches")] pub json_patches: Option>, /// Match is a set of conditions that have to be matched for modification operation to happen. @@ -99,9 +106,22 @@ pub struct MeshProxyPatchDefaultAppendModificationsClusterMatch { /// Name of the cluster to match. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Origin is the name of the component or plugin that generated the resource. - /// Here is the list of well-known origins: inbound - resources generated for handling incoming traffic. outbound - resources generated for handling outgoing traffic. transparent - resources generated for transparent proxy functionality. prometheus - resources generated when Prometheus metrics are enabled. direct-access - resources generated for Direct Access functionality. ingress - resources generated for Zone Ingress. egress - resources generated for Zone Egress. gateway - resources generated for MeshGateway. - /// The list is not complete, because policy plugins can introduce new resources. For example MeshTrace plugin can create Cluster with "mesh-trace" origin. + /// Origin is the name of the component or plugin that generated the resource. + /// + /// + /// Here is the list of well-known origins: + /// inbound - resources generated for handling incoming traffic. + /// outbound - resources generated for handling outgoing traffic. + /// transparent - resources generated for transparent proxy functionality. + /// prometheus - resources generated when Prometheus metrics are enabled. + /// direct-access - resources generated for Direct Access functionality. + /// ingress - resources generated for Zone Ingress. + /// egress - resources generated for Zone Egress. + /// gateway - resources generated for MeshGateway. + /// + /// + /// The list is not complete, because policy plugins can introduce new resources. + /// For example MeshTrace plugin can create Cluster with "mesh-trace" origin. #[serde(default, skip_serializing_if = "Option::is_none")] pub origin: Option, } @@ -114,10 +134,12 @@ pub enum MeshProxyPatchDefaultAppendModificationsClusterOperation { Patch, } -/// HTTPFilter is a modification of Envoy HTTP Filter available in HTTP Connection Manager in a Listener resource. +/// HTTPFilter is a modification of Envoy HTTP Filter +/// available in HTTP Connection Manager in a Listener resource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshProxyPatchDefaultAppendModificationsHttpFilter { - /// JsonPatches specifies list of jsonpatches to apply to on Envoy's HTTP Filter available in HTTP Connection Manager in a Listener resource. + /// JsonPatches specifies list of jsonpatches to apply to on Envoy's + /// HTTP Filter available in HTTP Connection Manager in a Listener resource. #[serde(default, skip_serializing_if = "Option::is_none", rename = "jsonPatches")] pub json_patches: Option>, /// Match is a set of conditions that have to be matched for modification operation to happen. @@ -172,14 +194,28 @@ pub struct MeshProxyPatchDefaultAppendModificationsHttpFilterMatch { /// Name of the HTTP filter. For example "envoy.filters.http.local_ratelimit" #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Origin is the name of the component or plugin that generated the resource. - /// Here is the list of well-known origins: inbound - resources generated for handling incoming traffic. outbound - resources generated for handling outgoing traffic. transparent - resources generated for transparent proxy functionality. prometheus - resources generated when Prometheus metrics are enabled. direct-access - resources generated for Direct Access functionality. ingress - resources generated for Zone Ingress. egress - resources generated for Zone Egress. gateway - resources generated for MeshGateway. - /// The list is not complete, because policy plugins can introduce new resources. For example MeshTrace plugin can create Cluster with "mesh-trace" origin. + /// Origin is the name of the component or plugin that generated the resource. + /// + /// + /// Here is the list of well-known origins: + /// inbound - resources generated for handling incoming traffic. + /// outbound - resources generated for handling outgoing traffic. + /// transparent - resources generated for transparent proxy functionality. + /// prometheus - resources generated when Prometheus metrics are enabled. + /// direct-access - resources generated for Direct Access functionality. + /// ingress - resources generated for Zone Ingress. + /// egress - resources generated for Zone Egress. + /// gateway - resources generated for MeshGateway. + /// + /// + /// The list is not complete, because policy plugins can introduce new resources. + /// For example MeshTrace plugin can create Cluster with "mesh-trace" origin. #[serde(default, skip_serializing_if = "Option::is_none")] pub origin: Option, } -/// HTTPFilter is a modification of Envoy HTTP Filter available in HTTP Connection Manager in a Listener resource. +/// HTTPFilter is a modification of Envoy HTTP Filter +/// available in HTTP Connection Manager in a Listener resource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshProxyPatchDefaultAppendModificationsHttpFilterOperation { Remove, @@ -193,7 +229,8 @@ pub enum MeshProxyPatchDefaultAppendModificationsHttpFilterOperation { /// Listener is a modification of Envoy's Listener resource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshProxyPatchDefaultAppendModificationsListener { - /// JsonPatches specifies list of jsonpatches to apply to on Envoy's Listener resource + /// JsonPatches specifies list of jsonpatches to apply to on Envoy's Listener + /// resource #[serde(default, skip_serializing_if = "Option::is_none", rename = "jsonPatches")] pub json_patches: Option>, /// Match is a set of conditions that have to be matched for modification operation to happen. @@ -242,9 +279,22 @@ pub struct MeshProxyPatchDefaultAppendModificationsListenerMatch { /// Name of the listener to match. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Origin is the name of the component or plugin that generated the resource. - /// Here is the list of well-known origins: inbound - resources generated for handling incoming traffic. outbound - resources generated for handling outgoing traffic. transparent - resources generated for transparent proxy functionality. prometheus - resources generated when Prometheus metrics are enabled. direct-access - resources generated for Direct Access functionality. ingress - resources generated for Zone Ingress. egress - resources generated for Zone Egress. gateway - resources generated for MeshGateway. - /// The list is not complete, because policy plugins can introduce new resources. For example MeshTrace plugin can create Cluster with "mesh-trace" origin. + /// Origin is the name of the component or plugin that generated the resource. + /// + /// + /// Here is the list of well-known origins: + /// inbound - resources generated for handling incoming traffic. + /// outbound - resources generated for handling outgoing traffic. + /// transparent - resources generated for transparent proxy functionality. + /// prometheus - resources generated when Prometheus metrics are enabled. + /// direct-access - resources generated for Direct Access functionality. + /// ingress - resources generated for Zone Ingress. + /// egress - resources generated for Zone Egress. + /// gateway - resources generated for MeshGateway. + /// + /// + /// The list is not complete, because policy plugins can introduce new resources. + /// For example MeshTrace plugin can create Cluster with "mesh-trace" origin. #[serde(default, skip_serializing_if = "Option::is_none")] pub origin: Option, /// Tags available in Listener#Metadata#FilterMetadata[io.kuma.tags] @@ -263,7 +313,8 @@ pub enum MeshProxyPatchDefaultAppendModificationsListenerOperation { /// NetworkFilter is a modification of Envoy Listener's filter. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshProxyPatchDefaultAppendModificationsNetworkFilter { - /// JsonPatches specifies list of jsonpatches to apply to on Envoy Listener's filter. + /// JsonPatches specifies list of jsonpatches to apply to on Envoy Listener's + /// filter. #[serde(default, skip_serializing_if = "Option::is_none", rename = "jsonPatches")] pub json_patches: Option>, /// Match is a set of conditions that have to be matched for modification operation to happen. @@ -318,9 +369,22 @@ pub struct MeshProxyPatchDefaultAppendModificationsNetworkFilterMatch { /// Name of the network filter. For example "envoy.filters.network.ratelimit" #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Origin is the name of the component or plugin that generated the resource. - /// Here is the list of well-known origins: inbound - resources generated for handling incoming traffic. outbound - resources generated for handling outgoing traffic. transparent - resources generated for transparent proxy functionality. prometheus - resources generated when Prometheus metrics are enabled. direct-access - resources generated for Direct Access functionality. ingress - resources generated for Zone Ingress. egress - resources generated for Zone Egress. gateway - resources generated for MeshGateway. - /// The list is not complete, because policy plugins can introduce new resources. For example MeshTrace plugin can create Cluster with "mesh-trace" origin. + /// Origin is the name of the component or plugin that generated the resource. + /// + /// + /// Here is the list of well-known origins: + /// inbound - resources generated for handling incoming traffic. + /// outbound - resources generated for handling outgoing traffic. + /// transparent - resources generated for transparent proxy functionality. + /// prometheus - resources generated when Prometheus metrics are enabled. + /// direct-access - resources generated for Direct Access functionality. + /// ingress - resources generated for Zone Ingress. + /// egress - resources generated for Zone Egress. + /// gateway - resources generated for MeshGateway. + /// + /// + /// The list is not complete, because policy plugins can introduce new resources. + /// For example MeshTrace plugin can create Cluster with "mesh-trace" origin. #[serde(default, skip_serializing_if = "Option::is_none")] pub origin: Option, } @@ -336,10 +400,12 @@ pub enum MeshProxyPatchDefaultAppendModificationsNetworkFilterOperation { AddLast, } -/// VirtualHost is a modification of Envoy's VirtualHost referenced in HTTP Connection Manager in a Listener resource. +/// VirtualHost is a modification of Envoy's VirtualHost +/// referenced in HTTP Connection Manager in a Listener resource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshProxyPatchDefaultAppendModificationsVirtualHost { - /// JsonPatches specifies list of jsonpatches to apply to on Envoy's VirtualHost resource + /// JsonPatches specifies list of jsonpatches to apply to on Envoy's + /// VirtualHost resource #[serde(default, skip_serializing_if = "Option::is_none", rename = "jsonPatches")] pub json_patches: Option>, /// Match is a set of conditions that have to be matched for modification operation to happen. @@ -388,9 +454,22 @@ pub struct MeshProxyPatchDefaultAppendModificationsVirtualHostMatch { /// Name of the VirtualHost to match. #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, - /// Origin is the name of the component or plugin that generated the resource. - /// Here is the list of well-known origins: inbound - resources generated for handling incoming traffic. outbound - resources generated for handling outgoing traffic. transparent - resources generated for transparent proxy functionality. prometheus - resources generated when Prometheus metrics are enabled. direct-access - resources generated for Direct Access functionality. ingress - resources generated for Zone Ingress. egress - resources generated for Zone Egress. gateway - resources generated for MeshGateway. - /// The list is not complete, because policy plugins can introduce new resources. For example MeshTrace plugin can create Cluster with "mesh-trace" origin. + /// Origin is the name of the component or plugin that generated the resource. + /// + /// + /// Here is the list of well-known origins: + /// inbound - resources generated for handling incoming traffic. + /// outbound - resources generated for handling outgoing traffic. + /// transparent - resources generated for transparent proxy functionality. + /// prometheus - resources generated when Prometheus metrics are enabled. + /// direct-access - resources generated for Direct Access functionality. + /// ingress - resources generated for Zone Ingress. + /// egress - resources generated for Zone Egress. + /// gateway - resources generated for MeshGateway. + /// + /// + /// The list is not complete, because policy plugins can introduce new resources. + /// For example MeshTrace plugin can create Cluster with "mesh-trace" origin. #[serde(default, skip_serializing_if = "Option::is_none")] pub origin: Option, /// Name of the RouteConfiguration resource to match. @@ -398,7 +477,8 @@ pub struct MeshProxyPatchDefaultAppendModificationsVirtualHostMatch { pub route_configuration_name: Option, } -/// VirtualHost is a modification of Envoy's VirtualHost referenced in HTTP Connection Manager in a Listener resource. +/// VirtualHost is a modification of Envoy's VirtualHost +/// referenced in HTTP Connection Manager in a Listener resource. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshProxyPatchDefaultAppendModificationsVirtualHostOperation { Add, @@ -406,7 +486,9 @@ pub enum MeshProxyPatchDefaultAppendModificationsVirtualHostOperation { Patch, } -/// 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. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshProxyPatchTargetRef { /// Kind of the referenced resource @@ -415,15 +497,23 @@ pub struct MeshProxyPatchTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 the policy takes an effect on. The resource could be either a real store object or virtual resource defined inplace. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshProxyPatchTargetRefKind { Mesh, diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshratelimits.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshratelimits.rs index ef1087c47..c3cfa7281 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshratelimits.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshratelimits.rs @@ -15,7 +15,9 @@ pub struct MeshRateLimitSpec { /// From list makes a match between clients and corresponding configurations #[serde(default, skip_serializing_if = "Option::is_none")] pub from: Option>, - /// 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. + /// 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: MeshRateLimitTargetRef, /// To list makes a match between clients and corresponding configurations @@ -25,15 +27,18 @@ pub struct MeshRateLimitSpec { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshRateLimitFrom { - /// Default is a configuration specific to the group of clients referenced in 'targetRef' + /// Default is a configuration specific to the group of clients 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 clients. + /// TargetRef is a reference to the resource that represents a group of + /// clients. #[serde(rename = "targetRef")] pub target_ref: MeshRateLimitFromTargetRef, } -/// Default is a configuration specific to the group of clients referenced in 'targetRef' +/// Default is a configuration specific to the group of clients referenced in +/// 'targetRef' #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshRateLimitFromDefault { /// LocalConf defines local http or/and tcp rate limit configuration @@ -44,15 +49,18 @@ pub struct MeshRateLimitFromDefault { /// LocalConf defines local http or/and tcp rate limit configuration #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshRateLimitFromDefaultLocal { - /// LocalHTTP defines confguration of local HTTP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter + /// LocalHTTP defines confguration of local HTTP rate limiting + /// https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter #[serde(default, skip_serializing_if = "Option::is_none")] pub http: Option, - /// LocalTCP defines confguration of local TCP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter + /// LocalTCP defines confguration of local TCP rate limiting + /// https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter #[serde(default, skip_serializing_if = "Option::is_none")] pub tcp: Option, } -/// LocalHTTP defines confguration of local HTTP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter +/// LocalHTTP defines confguration of local HTTP rate limiting +/// https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshRateLimitFromDefaultLocalHttp { /// Define if rate limiting should be disabled. @@ -103,17 +111,20 @@ pub struct MeshRateLimitFromDefaultLocalHttpOnRateLimitHeadersSet { pub struct MeshRateLimitFromDefaultLocalHttpRequestRate { /// The interval the number of units is accounted for. pub interval: String, - /// Number of units per interval (depending on usage it can be a number of requests, or a number of connections). + /// Number of units per interval (depending on usage it can be a number of requests, + /// or a number of connections). pub num: i32, } -/// LocalTCP defines confguration of local TCP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter +/// LocalTCP defines confguration of local TCP rate limiting +/// https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshRateLimitFromDefaultLocalTcp { /// Defines how many connections are allowed per interval. #[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionRate")] pub connection_rate: Option, - /// Define if rate limiting should be disabled. Default: false + /// Define if rate limiting should be disabled. + /// Default: false #[serde(default, skip_serializing_if = "Option::is_none")] pub disabled: Option, } @@ -123,11 +134,13 @@ pub struct MeshRateLimitFromDefaultLocalTcp { pub struct MeshRateLimitFromDefaultLocalTcpConnectionRate { /// The interval the number of units is accounted for. pub interval: String, - /// Number of units per interval (depending on usage it can be a number of requests, or a number of connections). + /// Number of units per interval (depending on usage it can be a number of requests, + /// or a number of connections). pub num: i32, } -/// TargetRef is a reference to the resource that represents a group of clients. +/// TargetRef is a reference to the resource that represents a group of +/// clients. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshRateLimitFromTargetRef { /// Kind of the referenced resource @@ -136,15 +149,22 @@ pub struct MeshRateLimitFromTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 clients. +/// TargetRef is a reference to the resource that represents a group of +/// clients. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshRateLimitFromTargetRefKind { Mesh, @@ -156,7 +176,9 @@ pub enum MeshRateLimitFromTargetRefKind { MeshHttpRoute, } -/// 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. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshRateLimitTargetRef { /// Kind of the referenced resource @@ -165,15 +187,23 @@ pub struct MeshRateLimitTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 the policy takes an effect on. The resource could be either a real store object or virtual resource defined inplace. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshRateLimitTargetRefKind { Mesh, @@ -187,15 +217,18 @@ pub enum MeshRateLimitTargetRefKind { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshRateLimitTo { - /// Default is a configuration specific to the group of clients referenced in 'targetRef' + /// Default is a configuration specific to the group of clients 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 clients. + /// TargetRef is a reference to the resource that represents a group of + /// clients. #[serde(rename = "targetRef")] pub target_ref: MeshRateLimitToTargetRef, } -/// Default is a configuration specific to the group of clients referenced in 'targetRef' +/// Default is a configuration specific to the group of clients referenced in +/// 'targetRef' #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshRateLimitToDefault { /// LocalConf defines local http or/and tcp rate limit configuration @@ -206,15 +239,18 @@ pub struct MeshRateLimitToDefault { /// LocalConf defines local http or/and tcp rate limit configuration #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshRateLimitToDefaultLocal { - /// LocalHTTP defines confguration of local HTTP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter + /// LocalHTTP defines confguration of local HTTP rate limiting + /// https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter #[serde(default, skip_serializing_if = "Option::is_none")] pub http: Option, - /// LocalTCP defines confguration of local TCP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter + /// LocalTCP defines confguration of local TCP rate limiting + /// https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter #[serde(default, skip_serializing_if = "Option::is_none")] pub tcp: Option, } -/// LocalHTTP defines confguration of local HTTP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter +/// LocalHTTP defines confguration of local HTTP rate limiting +/// https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/local_rate_limit_filter #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshRateLimitToDefaultLocalHttp { /// Define if rate limiting should be disabled. @@ -265,17 +301,20 @@ pub struct MeshRateLimitToDefaultLocalHttpOnRateLimitHeadersSet { pub struct MeshRateLimitToDefaultLocalHttpRequestRate { /// The interval the number of units is accounted for. pub interval: String, - /// Number of units per interval (depending on usage it can be a number of requests, or a number of connections). + /// Number of units per interval (depending on usage it can be a number of requests, + /// or a number of connections). pub num: i32, } -/// LocalTCP defines confguration of local TCP rate limiting https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter +/// LocalTCP defines confguration of local TCP rate limiting +/// https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/network_filters/local_rate_limit_filter #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshRateLimitToDefaultLocalTcp { /// Defines how many connections are allowed per interval. #[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionRate")] pub connection_rate: Option, - /// Define if rate limiting should be disabled. Default: false + /// Define if rate limiting should be disabled. + /// Default: false #[serde(default, skip_serializing_if = "Option::is_none")] pub disabled: Option, } @@ -285,11 +324,13 @@ pub struct MeshRateLimitToDefaultLocalTcp { pub struct MeshRateLimitToDefaultLocalTcpConnectionRate { /// The interval the number of units is accounted for. pub interval: String, - /// Number of units per interval (depending on usage it can be a number of requests, or a number of connections). + /// Number of units per interval (depending on usage it can be a number of requests, + /// or a number of connections). pub num: i32, } -/// TargetRef is a reference to the resource that represents a group of clients. +/// TargetRef is a reference to the resource that represents a group of +/// clients. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshRateLimitToTargetRef { /// Kind of the referenced resource @@ -298,15 +339,22 @@ pub struct MeshRateLimitToTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 clients. +/// TargetRef is a reference to the resource that represents a group of +/// clients. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshRateLimitToTargetRefKind { Mesh, diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshretries.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshretries.rs index 63f308f84..c7c52a62d 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshretries.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshretries.rs @@ -12,7 +12,9 @@ use std::collections::BTreeMap; #[kube(namespaced)] #[kube(schema = "disabled")] pub struct MeshRetrySpec { - /// 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. + /// 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: MeshRetryTargetRef, /// To list makes a match between the consumed services and corresponding configurations @@ -20,7 +22,9 @@ pub struct MeshRetrySpec { pub to: Option>, } -/// 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. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshRetryTargetRef { /// Kind of the referenced resource @@ -29,15 +33,23 @@ pub struct MeshRetryTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 the policy takes an effect on. The resource could be either a real store object or virtual resource defined inplace. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshRetryTargetRefKind { Mesh, @@ -51,15 +63,18 @@ pub enum MeshRetryTargetRefKind { #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshRetryTo { - /// Default is a configuration specific to the group of destinations referenced in 'targetRef' + /// 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. + /// TargetRef is a reference to the resource that represents a group of + /// destinations. #[serde(rename = "targetRef")] pub target_ref: MeshRetryToTargetRef, } -/// Default is a configuration specific to the group of destinations referenced in 'targetRef' +/// Default is a configuration specific to the group of destinations referenced in +/// 'targetRef' #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshRetryToDefault { /// GRPC defines a configuration of retries for GRPC traffic @@ -76,16 +91,21 @@ pub struct MeshRetryToDefault { /// GRPC defines a configuration of retries for GRPC traffic #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshRetryToDefaultGrpc { - /// BackOff is a configuration of durations which will be used in an exponential backoff strategy between retries. + /// BackOff is a configuration of durations which will be used in an exponential + /// backoff strategy between retries. #[serde(default, skip_serializing_if = "Option::is_none", rename = "backOff")] pub back_off: Option, - /// NumRetries is the number of attempts that will be made on failed (and retriable) requests. If not set, the default value is 1. + /// NumRetries is the number of attempts that will be made on failed (and + /// retriable) requests. If not set, the default value is 1. #[serde(default, skip_serializing_if = "Option::is_none", rename = "numRetries")] pub num_retries: Option, - /// PerTryTimeout is the maximum amount of time each retry attempt can take before it times out. If not set, the global request timeout for the route will be used. Setting this value to 0 will disable the per-try timeout. + /// PerTryTimeout is the maximum amount of time each retry attempt can take + /// before it times out. If not set, the global request timeout for the route + /// will be used. Setting this value to 0 will disable the per-try timeout. #[serde(default, skip_serializing_if = "Option::is_none", rename = "perTryTimeout")] pub per_try_timeout: Option, - /// RateLimitedBackOff is a configuration of backoff which will be used when the upstream returns one of the headers configured. + /// RateLimitedBackOff is a configuration of backoff which will be used when + /// the upstream returns one of the headers configured. #[serde(default, skip_serializing_if = "Option::is_none", rename = "rateLimitedBackOff")] pub rate_limited_back_off: Option, /// RetryOn is a list of conditions which will cause a retry. @@ -93,24 +113,31 @@ pub struct MeshRetryToDefaultGrpc { pub retry_on: Option>, } -/// BackOff is a configuration of durations which will be used in an exponential backoff strategy between retries. +/// BackOff is a configuration of durations which will be used in an exponential +/// backoff strategy between retries. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshRetryToDefaultGrpcBackOff { - /// BaseInterval is an amount of time which should be taken between retries. Must be greater than zero. Values less than 1 ms are rounded up to 1 ms. + /// BaseInterval is an amount of time which should be taken between retries. + /// Must be greater than zero. Values less than 1 ms are rounded up to 1 ms. #[serde(default, skip_serializing_if = "Option::is_none", rename = "baseInterval")] pub base_interval: Option, - /// MaxInterval is a maximal amount of time which will be taken between retries. Default is 10 times the "BaseInterval". + /// MaxInterval is a maximal amount of time which will be taken between retries. + /// Default is 10 times the "BaseInterval". #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxInterval")] pub max_interval: Option, } -/// RateLimitedBackOff is a configuration of backoff which will be used when the upstream returns one of the headers configured. +/// RateLimitedBackOff is a configuration of backoff which will be used when +/// the upstream returns one of the headers configured. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshRetryToDefaultGrpcRateLimitedBackOff { /// MaxInterval is a maximal amount of time which will be taken between retries. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxInterval")] pub max_interval: Option, - /// ResetHeaders specifies the list of headers (like Retry-After or X-RateLimit-Reset) to match against the response. Headers are tried in order, and matched case-insensitive. The first header to be parsed successfully is used. If no headers match the default exponential BackOff is used instead. + /// ResetHeaders specifies the list of headers (like Retry-After or X-RateLimit-Reset) + /// to match against the response. Headers are tried in order, and matched + /// case-insensitive. The first header to be parsed successfully is used. + /// If no headers match the default exponential BackOff is used instead. #[serde(default, skip_serializing_if = "Option::is_none", rename = "resetHeaders")] pub reset_headers: Option>, } @@ -132,42 +159,63 @@ pub enum MeshRetryToDefaultGrpcRateLimitedBackOffResetHeadersFormat { /// HTTP defines a configuration of retries for HTTP traffic #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshRetryToDefaultHttp { - /// BackOff is a configuration of durations which will be used in exponential backoff strategy between retries. + /// BackOff is a configuration of durations which will be used in exponential + /// backoff strategy between retries. #[serde(default, skip_serializing_if = "Option::is_none", rename = "backOff")] pub back_off: Option, - /// HostSelection is a list of predicates that dictate how hosts should be selected when requests are retried. + /// HostSelection is a list of predicates that dictate how hosts should be selected + /// when requests are retried. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostSelection")] pub host_selection: Option>, - /// HostSelectionMaxAttempts is the maximum number of times host selection will be reattempted before giving up, at which point the host that was last selected will be routed to. If unspecified, this will default to retrying once. + /// HostSelectionMaxAttempts is the maximum number of times host selection will be + /// reattempted before giving up, at which point the host that was last selected will + /// be routed to. If unspecified, this will default to retrying once. #[serde(default, skip_serializing_if = "Option::is_none", rename = "hostSelectionMaxAttempts")] pub host_selection_max_attempts: Option, - /// NumRetries is the number of attempts that will be made on failed (and retriable) requests. If not set, the default value is 1. + /// NumRetries is the number of attempts that will be made on failed (and + /// retriable) requests. If not set, the default value is 1. #[serde(default, skip_serializing_if = "Option::is_none", rename = "numRetries")] pub num_retries: Option, - /// PerTryTimeout is the amount of time after which retry attempt should time out. If left unspecified, the global route timeout for the request will be used. Consequently, when using a 5xx based retry policy, a request that times out will not be retried as the total timeout budget would have been exhausted. Setting this timeout to 0 will disable it. + /// PerTryTimeout is the amount of time after which retry attempt should time out. + /// If left unspecified, the global route timeout for the request will be used. + /// Consequently, when using a 5xx based retry policy, a request that times out + /// will not be retried as the total timeout budget would have been exhausted. + /// Setting this timeout to 0 will disable it. #[serde(default, skip_serializing_if = "Option::is_none", rename = "perTryTimeout")] pub per_try_timeout: Option, - /// RateLimitedBackOff is a configuration of backoff which will be used when the upstream returns one of the headers configured. + /// RateLimitedBackOff is a configuration of backoff which will be used + /// when the upstream returns one of the headers configured. #[serde(default, skip_serializing_if = "Option::is_none", rename = "rateLimitedBackOff")] pub rate_limited_back_off: Option, - /// RetriableRequestHeaders is an HTTP headers which must be present in the request for retries to be attempted. + /// RetriableRequestHeaders is an HTTP headers which must be present in the request + /// for retries to be attempted. #[serde(default, skip_serializing_if = "Option::is_none", rename = "retriableRequestHeaders")] pub retriable_request_headers: Option>, - /// RetriableResponseHeaders is an HTTP response headers that trigger a retry if present in the response. A retry will be triggered if any of the header matches the upstream response headers. + /// RetriableResponseHeaders is an HTTP response headers that trigger a retry + /// if present in the response. A retry will be triggered if any of the header + /// matches the upstream response headers. #[serde(default, skip_serializing_if = "Option::is_none", rename = "retriableResponseHeaders")] pub retriable_response_headers: Option>, - /// RetryOn is a list of conditions which will cause a retry. Available values are: [5XX, GatewayError, Reset, Retriable4xx, ConnectFailure, EnvoyRatelimited, RefusedStream, Http3PostConnectFailure, HttpMethodConnect, HttpMethodDelete, HttpMethodGet, HttpMethodHead, HttpMethodOptions, HttpMethodPatch, HttpMethodPost, HttpMethodPut, HttpMethodTrace]. Also, any HTTP status code (500, 503, etc.). + /// RetryOn is a list of conditions which will cause a retry. Available values are: + /// [5XX, GatewayError, Reset, Retriable4xx, ConnectFailure, EnvoyRatelimited, + /// RefusedStream, Http3PostConnectFailure, HttpMethodConnect, HttpMethodDelete, + /// HttpMethodGet, HttpMethodHead, HttpMethodOptions, HttpMethodPatch, + /// HttpMethodPost, HttpMethodPut, HttpMethodTrace]. + /// Also, any HTTP status code (500, 503, etc.). #[serde(default, skip_serializing_if = "Option::is_none", rename = "retryOn")] pub retry_on: Option>, } -/// BackOff is a configuration of durations which will be used in exponential backoff strategy between retries. +/// BackOff is a configuration of durations which will be used in exponential +/// backoff strategy between retries. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshRetryToDefaultHttpBackOff { - /// BaseInterval is an amount of time which should be taken between retries. Must be greater than zero. Values less than 1 ms are rounded up to 1 ms. + /// BaseInterval is an amount of time which should be taken between retries. + /// Must be greater than zero. Values less than 1 ms are rounded up to 1 ms. #[serde(default, skip_serializing_if = "Option::is_none", rename = "baseInterval")] pub base_interval: Option, - /// MaxInterval is a maximal amount of time which will be taken between retries. Default is 10 times the "BaseInterval". + /// MaxInterval is a maximal amount of time which will be taken between retries. + /// Default is 10 times the "BaseInterval". #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxInterval")] pub max_interval: Option, } @@ -176,10 +224,12 @@ pub struct MeshRetryToDefaultHttpBackOff { pub struct MeshRetryToDefaultHttpHostSelection { /// Type is requested predicate mode. pub predicate: MeshRetryToDefaultHttpHostSelectionPredicate, - /// Tags is a map of metadata to match against for selecting the omitted hosts. Required if Type is OmitHostsWithTags + /// Tags is a map of metadata to match against for selecting the omitted hosts. Required if Type is + /// OmitHostsWithTags #[serde(default, skip_serializing_if = "Option::is_none")] pub tags: Option>, - /// UpdateFrequency is how often the priority load should be updated based on previously attempted priorities. Used for OmitPreviousPriorities. + /// UpdateFrequency is how often the priority load should be updated based on previously attempted priorities. + /// Used for OmitPreviousPriorities. #[serde(default, skip_serializing_if = "Option::is_none", rename = "updateFrequency")] pub update_frequency: Option, } @@ -191,13 +241,17 @@ pub enum MeshRetryToDefaultHttpHostSelectionPredicate { OmitPreviousPriorities, } -/// RateLimitedBackOff is a configuration of backoff which will be used when the upstream returns one of the headers configured. +/// RateLimitedBackOff is a configuration of backoff which will be used +/// when the upstream returns one of the headers configured. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshRetryToDefaultHttpRateLimitedBackOff { /// MaxInterval is a maximal amount of time which will be taken between retries. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxInterval")] pub max_interval: Option, - /// ResetHeaders specifies the list of headers (like Retry-After or X-RateLimit-Reset) to match against the response. Headers are tried in order, and matched case-insensitive. The first header to be parsed successfully is used. If no headers match the default exponential BackOff is used instead. + /// ResetHeaders specifies the list of headers (like Retry-After or X-RateLimit-Reset) + /// to match against the response. Headers are tried in order, and matched + /// case-insensitive. The first header to be parsed successfully is used. + /// If no headers match the default exponential BackOff is used instead. #[serde(default, skip_serializing_if = "Option::is_none", rename = "resetHeaders")] pub reset_headers: Option>, } @@ -216,10 +270,12 @@ pub enum MeshRetryToDefaultHttpRateLimitedBackOffResetHeadersFormat { UnixTimestamp, } -/// HeaderMatch describes how to select an HTTP route by matching HTTP request headers. +/// HeaderMatch describes how to select an HTTP route by matching HTTP request +/// headers. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshRetryToDefaultHttpRetriableRequestHeaders { - /// Name is the name of the HTTP Header to be matched. Name MUST be lower case as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2). + /// Name is the name of the HTTP Header to be matched. Name MUST be lower case + /// as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2). pub name: String, /// Type specifies how to match against the value of the header. #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] @@ -229,7 +285,8 @@ pub struct MeshRetryToDefaultHttpRetriableRequestHeaders { pub value: Option, } -/// HeaderMatch describes how to select an HTTP route by matching HTTP request headers. +/// HeaderMatch describes how to select an HTTP route by matching HTTP request +/// headers. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshRetryToDefaultHttpRetriableRequestHeadersType { Exact, @@ -239,10 +296,12 @@ pub enum MeshRetryToDefaultHttpRetriableRequestHeadersType { Prefix, } -/// HeaderMatch describes how to select an HTTP route by matching HTTP request headers. +/// HeaderMatch describes how to select an HTTP route by matching HTTP request +/// headers. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshRetryToDefaultHttpRetriableResponseHeaders { - /// Name is the name of the HTTP Header to be matched. Name MUST be lower case as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2). + /// Name is the name of the HTTP Header to be matched. Name MUST be lower case + /// as they will be handled with case insensitivity (See https://tools.ietf.org/html/rfc7230#section-3.2). pub name: String, /// Type specifies how to match against the value of the header. #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] @@ -252,7 +311,8 @@ pub struct MeshRetryToDefaultHttpRetriableResponseHeaders { pub value: Option, } -/// HeaderMatch describes how to select an HTTP route by matching HTTP request headers. +/// HeaderMatch describes how to select an HTTP route by matching HTTP request +/// headers. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshRetryToDefaultHttpRetriableResponseHeadersType { Exact, @@ -265,12 +325,14 @@ pub enum MeshRetryToDefaultHttpRetriableResponseHeadersType { /// TCP defines a configuration of retries for TCP traffic #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshRetryToDefaultTcp { - /// MaxConnectAttempt is a maximal amount of TCP connection attempts which will be made before giving up + /// MaxConnectAttempt is a maximal amount of TCP connection attempts + /// which will be made before giving up #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxConnectAttempt")] pub max_connect_attempt: Option, } -/// TargetRef is a reference to the resource that represents a group of destinations. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshRetryToTargetRef { /// Kind of the referenced resource @@ -279,15 +341,22 @@ pub struct MeshRetryToTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshRetryToTargetRefKind { Mesh, diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtcproutes.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtcproutes.rs index 40d85fabe..fcf39b820 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtcproutes.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtcproutes.rs @@ -12,15 +12,20 @@ use std::collections::BTreeMap; #[kube(namespaced)] #[kube(schema = "disabled")] pub struct MeshTCPRouteSpec { - /// 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 in-place. + /// 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 in-place. #[serde(rename = "targetRef")] pub target_ref: MeshTCPRouteTargetRef, - /// To list makes a match between the consumed services and corresponding configurations + /// To list makes a match between the consumed services and corresponding + /// configurations #[serde(default, skip_serializing_if = "Option::is_none")] pub to: Option>, } -/// 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 in-place. +/// 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 in-place. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTCPRouteTargetRef { /// Kind of the referenced resource @@ -29,15 +34,23 @@ pub struct MeshTCPRouteTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 the policy takes an effect on. The resource could be either a real store object or virtual resource defined in-place. +/// 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 in-place. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshTCPRouteTargetRefKind { Mesh, @@ -51,21 +64,25 @@ pub enum MeshTCPRouteTargetRefKind { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTCPRouteTo { - /// Rules contains the routing rules applies to a combination of top-level targetRef and the targetRef in this entry. + /// Rules contains the routing rules applies to a combination of top-level + /// targetRef and the targetRef in this entry. #[serde(default, skip_serializing_if = "Option::is_none")] pub rules: Option>, - /// TargetRef is a reference to the resource that represents a group of destinations. + /// TargetRef is a reference to the resource that represents a group of + /// destinations. #[serde(rename = "targetRef")] pub target_ref: MeshTCPRouteToTargetRef, } #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTCPRouteToRules { - /// Default holds routing rules that can be merged with rules from other policies. + /// Default holds routing rules that can be merged with rules from other + /// policies. pub default: MeshTCPRouteToRulesDefault, } -/// Default holds routing rules that can be merged with rules from other policies. +/// Default holds routing rules that can be merged with rules from other +/// policies. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTCPRouteToRulesDefault { #[serde(rename = "backendRefs")] @@ -81,10 +98,16 @@ pub struct MeshTCPRouteToRulesDefaultBackendRefs { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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>, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -103,7 +126,8 @@ pub enum MeshTCPRouteToRulesDefaultBackendRefsKind { MeshHttpRoute, } -/// TargetRef is a reference to the resource that represents a group of destinations. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTCPRouteToTargetRef { /// Kind of the referenced resource @@ -112,15 +136,22 @@ pub struct MeshTCPRouteToTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshTCPRouteToTargetRefKind { Mesh, diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtimeouts.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtimeouts.rs index 0516ab8b4..cff993a7a 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtimeouts.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtimeouts.rs @@ -15,7 +15,9 @@ pub struct MeshTimeoutSpec { /// From list makes a match between clients and corresponding configurations #[serde(default, skip_serializing_if = "Option::is_none")] pub from: Option>, - /// 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. + /// 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: MeshTimeoutTargetRef, /// To list makes a match between the consumed services and corresponding configurations @@ -25,24 +27,30 @@ pub struct MeshTimeoutSpec { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTimeoutFrom { - /// Default is a configuration specific to the group of clients referenced in 'targetRef' + /// Default is a configuration specific to the group of clients 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 clients. + /// TargetRef is a reference to the resource that represents a group of + /// clients. #[serde(rename = "targetRef")] pub target_ref: MeshTimeoutFromTargetRef, } -/// Default is a configuration specific to the group of clients referenced in 'targetRef' +/// Default is a configuration specific to the group of clients referenced in +/// 'targetRef' #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTimeoutFromDefault { - /// ConnectionTimeout specifies the amount of time proxy will wait for an TCP connection to be established. Default value is 5 seconds. Cannot be set to 0. + /// ConnectionTimeout specifies the amount of time proxy will wait for an TCP connection to be established. + /// Default value is 5 seconds. Cannot be set to 0. #[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionTimeout")] pub connection_timeout: Option, /// Http provides configuration for HTTP specific timeouts #[serde(default, skip_serializing_if = "Option::is_none")] pub http: Option, - /// IdleTimeout is defined as the period in which there are no bytes sent or received on connection Setting this timeout to 0 will disable it. Be cautious when disabling it because it can lead to connection leaking. Default value is 1h. + /// IdleTimeout is defined as the period in which there are no bytes sent or received on connection + /// Setting this timeout to 0 will disable it. Be cautious when disabling it because + /// it can lead to connection leaking. Default value is 1h. #[serde(default, skip_serializing_if = "Option::is_none", rename = "idleTimeout")] pub idle_timeout: Option, } @@ -50,21 +58,35 @@ pub struct MeshTimeoutFromDefault { /// Http provides configuration for HTTP specific timeouts #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTimeoutFromDefaultHttp { - /// MaxConnectionDuration is the time after which a connection will be drained and/or closed, starting from when it was first established. Setting this timeout to 0 will disable it. Disabled by default. + /// MaxConnectionDuration is the time after which a connection will be drained and/or closed, + /// starting from when it was first established. Setting this timeout to 0 will disable it. + /// Disabled by default. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxConnectionDuration")] pub max_connection_duration: Option, - /// MaxStreamDuration is the maximum time that a stream’s lifetime will span. Setting this timeout to 0 will disable it. Disabled by default. + /// MaxStreamDuration is the maximum time that a stream’s lifetime will span. + /// Setting this timeout to 0 will disable it. Disabled by default. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxStreamDuration")] pub max_stream_duration: Option, - /// RequestTimeout The amount of time that proxy will wait for the entire request to be received. The timer is activated when the request is initiated, and is disarmed when the last byte of the request is sent, OR when the response is initiated. Setting this timeout to 0 will disable it. Default is 15s. + /// RequestHeadersTimeout The amount of time that proxy will wait for the request headers to be received. The timer is + /// activated when the first byte of the headers is received, and is disarmed when the last byte of + /// the headers has been received. If not specified or set to 0, this timeout is disabled. + /// Disabled by default. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requestHeadersTimeout")] + pub request_headers_timeout: Option, + /// RequestTimeout The amount of time that proxy will wait for the entire request to be received. + /// The timer is activated when the request is initiated, and is disarmed when the last byte of the request is sent, + /// OR when the response is initiated. Setting this timeout to 0 will disable it. + /// Default is 15s. #[serde(default, skip_serializing_if = "Option::is_none", rename = "requestTimeout")] pub request_timeout: Option, - /// StreamIdleTimeout is the amount of time that proxy will allow a stream to exist with no activity. Setting this timeout to 0 will disable it. Default is 30m + /// StreamIdleTimeout is the amount of time that proxy will allow a stream to exist with no activity. + /// Setting this timeout to 0 will disable it. Default is 30m #[serde(default, skip_serializing_if = "Option::is_none", rename = "streamIdleTimeout")] pub stream_idle_timeout: Option, } -/// TargetRef is a reference to the resource that represents a group of clients. +/// TargetRef is a reference to the resource that represents a group of +/// clients. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTimeoutFromTargetRef { /// Kind of the referenced resource @@ -73,15 +95,22 @@ pub struct MeshTimeoutFromTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 clients. +/// TargetRef is a reference to the resource that represents a group of +/// clients. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshTimeoutFromTargetRefKind { Mesh, @@ -93,7 +122,9 @@ pub enum MeshTimeoutFromTargetRefKind { MeshHttpRoute, } -/// 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. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTimeoutTargetRef { /// Kind of the referenced resource @@ -102,15 +133,23 @@ pub struct MeshTimeoutTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 the policy takes an effect on. The resource could be either a real store object or virtual resource defined inplace. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshTimeoutTargetRefKind { Mesh, @@ -124,24 +163,30 @@ pub enum MeshTimeoutTargetRefKind { #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTimeoutTo { - /// Default is a configuration specific to the group of destinations referenced in 'targetRef' + /// 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. + /// TargetRef is a reference to the resource that represents a group of + /// destinations. #[serde(rename = "targetRef")] pub target_ref: MeshTimeoutToTargetRef, } -/// Default is a configuration specific to the group of destinations referenced in 'targetRef' +/// Default is a configuration specific to the group of destinations referenced in +/// 'targetRef' #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTimeoutToDefault { - /// ConnectionTimeout specifies the amount of time proxy will wait for an TCP connection to be established. Default value is 5 seconds. Cannot be set to 0. + /// ConnectionTimeout specifies the amount of time proxy will wait for an TCP connection to be established. + /// Default value is 5 seconds. Cannot be set to 0. #[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionTimeout")] pub connection_timeout: Option, /// Http provides configuration for HTTP specific timeouts #[serde(default, skip_serializing_if = "Option::is_none")] pub http: Option, - /// IdleTimeout is defined as the period in which there are no bytes sent or received on connection Setting this timeout to 0 will disable it. Be cautious when disabling it because it can lead to connection leaking. Default value is 1h. + /// IdleTimeout is defined as the period in which there are no bytes sent or received on connection + /// Setting this timeout to 0 will disable it. Be cautious when disabling it because + /// it can lead to connection leaking. Default value is 1h. #[serde(default, skip_serializing_if = "Option::is_none", rename = "idleTimeout")] pub idle_timeout: Option, } @@ -149,21 +194,35 @@ pub struct MeshTimeoutToDefault { /// Http provides configuration for HTTP specific timeouts #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTimeoutToDefaultHttp { - /// MaxConnectionDuration is the time after which a connection will be drained and/or closed, starting from when it was first established. Setting this timeout to 0 will disable it. Disabled by default. + /// MaxConnectionDuration is the time after which a connection will be drained and/or closed, + /// starting from when it was first established. Setting this timeout to 0 will disable it. + /// Disabled by default. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxConnectionDuration")] pub max_connection_duration: Option, - /// MaxStreamDuration is the maximum time that a stream’s lifetime will span. Setting this timeout to 0 will disable it. Disabled by default. + /// MaxStreamDuration is the maximum time that a stream’s lifetime will span. + /// Setting this timeout to 0 will disable it. Disabled by default. #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxStreamDuration")] pub max_stream_duration: Option, - /// RequestTimeout The amount of time that proxy will wait for the entire request to be received. The timer is activated when the request is initiated, and is disarmed when the last byte of the request is sent, OR when the response is initiated. Setting this timeout to 0 will disable it. Default is 15s. + /// RequestHeadersTimeout The amount of time that proxy will wait for the request headers to be received. The timer is + /// activated when the first byte of the headers is received, and is disarmed when the last byte of + /// the headers has been received. If not specified or set to 0, this timeout is disabled. + /// Disabled by default. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "requestHeadersTimeout")] + pub request_headers_timeout: Option, + /// RequestTimeout The amount of time that proxy will wait for the entire request to be received. + /// The timer is activated when the request is initiated, and is disarmed when the last byte of the request is sent, + /// OR when the response is initiated. Setting this timeout to 0 will disable it. + /// Default is 15s. #[serde(default, skip_serializing_if = "Option::is_none", rename = "requestTimeout")] pub request_timeout: Option, - /// StreamIdleTimeout is the amount of time that proxy will allow a stream to exist with no activity. Setting this timeout to 0 will disable it. Default is 30m + /// StreamIdleTimeout is the amount of time that proxy will allow a stream to exist with no activity. + /// Setting this timeout to 0 will disable it. Default is 30m #[serde(default, skip_serializing_if = "Option::is_none", rename = "streamIdleTimeout")] pub stream_idle_timeout: Option, } -/// TargetRef is a reference to the resource that represents a group of destinations. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTimeoutToTargetRef { /// Kind of the referenced resource @@ -172,15 +231,22 @@ pub struct MeshTimeoutToTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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. +/// TargetRef is a reference to the resource that represents a group of +/// destinations. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshTimeoutToTargetRefKind { Mesh, diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtraces.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtraces.rs index 6bcb631bf..6620f47f4 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtraces.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtraces.rs @@ -16,7 +16,9 @@ pub struct MeshTraceSpec { /// MeshTrace configuration. #[serde(default, skip_serializing_if = "Option::is_none")] pub default: Option, - /// 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. + /// 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: MeshTraceTargetRef, } @@ -24,13 +26,20 @@ pub struct MeshTraceSpec { /// MeshTrace configuration. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshTraceDefault { - /// A one element array of backend definition. Envoy allows configuring only 1 backend, so the natural way of representing that would be just one object. Unfortunately due to the reasons explained in MADR 009-tracing-policy this has to be a one element array for now. + /// A one element array of backend definition. + /// Envoy allows configuring only 1 backend, so the natural way of + /// representing that would be just one object. Unfortunately due to the + /// reasons explained in MADR 009-tracing-policy this has to be a one element + /// array for now. #[serde(default, skip_serializing_if = "Option::is_none")] pub backends: Option>, - /// Sampling configuration. Sampling is the process by which a decision is made on whether to process/export a span or not. + /// Sampling configuration. + /// Sampling is the process by which a decision is made on whether to + /// process/export a span or not. #[serde(default, skip_serializing_if = "Option::is_none")] pub sampling: Option, - /// Custom tags configuration. You can add custom tags to traces based on headers or literal values. + /// Custom tags configuration. You can add custom tags to traces based on + /// headers or literal values. #[serde(default, skip_serializing_if = "Option::is_none")] pub tags: Option>, } @@ -54,10 +63,15 @@ pub struct MeshTraceDefaultBackends { /// Datadog backend configuration. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshTraceDefaultBackendsDatadog { - /// Determines if datadog service name should be split based on traffic direction and destination. For example, with `splitService: true` and a `backend` service that communicates with a couple of databases, you would get service names like `backend_INBOUND`, `backend_OUTBOUND_db1`, and `backend_OUTBOUND_db2` in Datadog. + /// Determines if datadog service name should be split based on traffic + /// direction and destination. For example, with `splitService: true` and a + /// `backend` service that communicates with a couple of databases, you would + /// get service names like `backend_INBOUND`, `backend_OUTBOUND_db1`, and + /// `backend_OUTBOUND_db2` in Datadog. #[serde(default, skip_serializing_if = "Option::is_none", rename = "splitService")] pub split_service: Option, - /// Address of Datadog collector, only host and port are allowed (no paths, fragments etc.) + /// Address of Datadog collector, only host and port are allowed (no paths, + /// fragments etc.) pub url: String, } @@ -79,10 +93,13 @@ pub enum MeshTraceDefaultBackendsType { /// Zipkin backend configuration. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshTraceDefaultBackendsZipkin { - /// Version of the API. https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/trace/v3/zipkin.proto#L66 + /// Version of the API. + /// https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/trace/v3/zipkin.proto#L66 #[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")] pub api_version: Option, - /// Determines whether client and server spans will share the same span context. https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/trace/v3/zipkin.proto#L63 + /// Determines whether client and server spans will share the same span + /// context. + /// https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/trace/v3/zipkin.proto#L63 #[serde(default, skip_serializing_if = "Option::is_none", rename = "sharedSpanContext")] pub shared_span_context: Option, /// Generate 128bit traces. @@ -101,21 +118,39 @@ pub enum MeshTraceDefaultBackendsZipkinApiVersion { HttpProto, } -/// Sampling configuration. Sampling is the process by which a decision is made on whether to process/export a span or not. +/// Sampling configuration. +/// Sampling is the process by which a decision is made on whether to +/// process/export a span or not. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshTraceDefaultSampling { - /// Target percentage of requests that will be force traced if the 'x-client-trace-id' header is set. Mirror of client_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L127-L133 Either int or decimal represented as string. + /// Target percentage of requests that will be force traced if the + /// 'x-client-trace-id' header is set. Mirror of client_sampling in Envoy + /// https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L127-L133 + /// Either int or decimal represented as string. #[serde(default, skip_serializing_if = "Option::is_none")] pub client: Option, - /// Target percentage of requests will be traced after all other sampling checks have been applied (client, force tracing, random sampling). This field functions as an upper limit on the total configured sampling rate. For instance, setting client_sampling to 100% but overall_sampling to 1% will result in only 1% of client requests with the appropriate headers to be force traced. Mirror of overall_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L142-L150 Either int or decimal represented as string. + /// Target percentage of requests will be traced + /// after all other sampling checks have been applied (client, force tracing, + /// random sampling). This field functions as an upper limit on the total + /// configured sampling rate. For instance, setting client_sampling to 100% + /// but overall_sampling to 1% will result in only 1% of client requests with + /// the appropriate headers to be force traced. Mirror of + /// overall_sampling in Envoy + /// https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L142-L150 + /// Either int or decimal represented as string. #[serde(default, skip_serializing_if = "Option::is_none")] pub overall: Option, - /// Target percentage of requests that will be randomly selected for trace generation, if not requested by the client or not forced. Mirror of random_sampling in Envoy https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L135-L140 Either int or decimal represented as string. + /// Target percentage of requests that will be randomly selected for trace + /// generation, if not requested by the client or not forced. + /// Mirror of random_sampling in Envoy + /// https://github.com/envoyproxy/envoy/blob/v1.22.0/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto#L135-L140 + /// Either int or decimal represented as string. #[serde(default, skip_serializing_if = "Option::is_none")] pub random: Option, } -/// Custom tags configuration. Only one of literal or header can be used. +/// Custom tags configuration. +/// Only one of literal or header can be used. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshTraceDefaultTags { /// Tag taken from a header. @@ -131,14 +166,18 @@ pub struct MeshTraceDefaultTags { /// Tag taken from a header. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshTraceDefaultTagsHeader { - /// Default value to use if header is missing. If the default is missing and there is no value the tag will not be included. + /// Default value to use if header is missing. + /// If the default is missing and there is no value the tag will not be + /// included. #[serde(default, skip_serializing_if = "Option::is_none")] pub default: Option, /// Name of the header. pub name: String, } -/// 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. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MeshTraceTargetRef { /// Kind of the referenced resource @@ -147,15 +186,23 @@ pub struct MeshTraceTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 the policy takes an effect on. The resource could be either a real store object or virtual resource defined inplace. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshTraceTargetRefKind { Mesh, diff --git a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtrafficpermissions.rs b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtrafficpermissions.rs index 6ab6db906..ad3f54491 100644 --- a/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtrafficpermissions.rs +++ b/kube-custom-resources-rs/src/kuma_io/v1alpha1/meshtrafficpermissions.rs @@ -15,22 +15,27 @@ pub struct MeshTrafficPermissionSpec { /// From list makes a match between clients and corresponding configurations #[serde(default, skip_serializing_if = "Option::is_none")] pub from: Option>, - /// 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. + /// 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: MeshTrafficPermissionTargetRef, } #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTrafficPermissionFrom { - /// Default is a configuration specific to the group of clients referenced in 'targetRef' + /// Default is a configuration specific to the group of clients 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 clients. + /// TargetRef is a reference to the resource that represents a group of + /// clients. #[serde(rename = "targetRef")] pub target_ref: MeshTrafficPermissionFromTargetRef, } -/// Default is a configuration specific to the group of clients referenced in 'targetRef' +/// Default is a configuration specific to the group of clients referenced in +/// 'targetRef' #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTrafficPermissionFromDefault { /// Action defines a behavior for the specified group of clients: @@ -38,7 +43,8 @@ pub struct MeshTrafficPermissionFromDefault { pub action: Option, } -/// Default is a configuration specific to the group of clients referenced in 'targetRef' +/// Default is a configuration specific to the group of clients referenced in +/// 'targetRef' #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshTrafficPermissionFromDefaultAction { Allow, @@ -46,7 +52,8 @@ pub enum MeshTrafficPermissionFromDefaultAction { AllowWithShadowDeny, } -/// TargetRef is a reference to the resource that represents a group of clients. +/// TargetRef is a reference to the resource that represents a group of +/// clients. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTrafficPermissionFromTargetRef { /// Kind of the referenced resource @@ -55,15 +62,22 @@ pub struct MeshTrafficPermissionFromTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 clients. +/// TargetRef is a reference to the resource that represents a group of +/// clients. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshTrafficPermissionFromTargetRefKind { Mesh, @@ -75,7 +89,9 @@ pub enum MeshTrafficPermissionFromTargetRefKind { MeshHttpRoute, } -/// 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. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct MeshTrafficPermissionTargetRef { /// Kind of the referenced resource @@ -84,15 +100,23 @@ pub struct MeshTrafficPermissionTargetRef { /// 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` + /// 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` + /// ProxyTypes specifies the data plane types that are subject to the policy. When not specified, + /// all data plane types are targeted by the policy. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "proxyTypes")] + pub proxy_types: 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 the policy takes an effect on. The resource could be either a real store object or virtual resource defined inplace. +/// 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. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum MeshTrafficPermissionTargetRefKind { Mesh, 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 90d421cc8..614a3046a 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 @@ -35,6 +35,9 @@ pub struct BackupSpec { /// NodeSelector to be used in the Backup Pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] pub node_selector: Option>, + /// 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, /// Resouces describes the compute resource requirements. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, @@ -44,6 +47,9 @@ pub struct BackupSpec { /// Schedule defines when the Backup will be taken. #[serde(default, skip_serializing_if = "Option::is_none")] pub schedule: Option, + /// 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, /// Storage to be used in the Backup. pub storage: BackupStorage, /// Tolerations to be used in the Backup Pod. @@ -486,6 +492,98 @@ pub struct BackupMariaDbRef { pub wait_for_it: Option, } +/// SecurityContext holds pod-level security attributes and common container settings. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct BackupPodSecurityContext { + /// 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, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. 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 BackupPodSecurityContextSeLinuxOptions { + /// 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 BackupPodSecurityContextSeccompProfile { + /// 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 be set if type is "Localhost". Must NOT be set for any other type. + #[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 BackupPodSecurityContextSysctls { + /// 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 BackupPodSecurityContextWindowsOptions { + /// 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. 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, +} + /// Resouces describes the compute resource requirements. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct BackupResources { @@ -527,6 +625,101 @@ pub struct BackupSchedule { pub suspend: Option, } +/// SecurityContext holds security configuration that will be applied to a container. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct BackupSecurityContext { + /// 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 BackupSecurityContextCapabilities { + /// 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 BackupSecurityContextSeLinuxOptions { + /// 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 BackupSecurityContextSeccompProfile { + /// 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 be set if type is "Localhost". Must NOT be set for any other type. + #[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 BackupSecurityContextWindowsOptions { + /// 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. 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, +} + /// Storage to be used in the Backup. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct BackupStorage { @@ -653,6 +846,9 @@ pub struct BackupStorageS3 { pub bucket: String, /// Endpoint is the S3 API endpoint without scheme. pub endpoint: String, + /// Prefix allows backups to be placed under a specific prefix in the bucket. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, /// Region is the S3 region name to use. #[serde(default, skip_serializing_if = "Option::is_none")] pub region: 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 18c789799..f1d098587 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 @@ -128,12 +128,18 @@ pub struct MariaDBSpec { /// Service defines templates to configure the general Service object. #[serde(default, skip_serializing_if = "Option::is_none")] pub service: Option, + /// ServiceAccountName is the name of the ServiceAccount to be used by the Pods. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountName")] + pub service_account_name: 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>, + /// TopologySpreadConstraints to be used in the Pod. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "topologySpreadConstraints")] + pub topology_spread_constraints: Option>, /// PodDisruptionBudget defines the update strategy for the StatefulSet object. #[serde(default, skip_serializing_if = "Option::is_none", rename = "updateStrategy")] pub update_strategy: Option, @@ -592,6 +598,9 @@ pub struct MariaDBBootstrapFromS3 { pub bucket: String, /// Endpoint is the S3 API endpoint without scheme. pub endpoint: String, + /// Prefix allows backups to be placed under a specific prefix in the bucket. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, /// Region is the S3 region name to use. #[serde(default, skip_serializing_if = "Option::is_none")] pub region: Option, @@ -5308,6 +5317,63 @@ pub struct MariaDBTolerations { pub value: Option, } +/// TopologySpreadConstraint specifies how to spread matching pods among the given topology. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct MariaDBTopologySpreadConstraints { + /// LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")] + pub label_selector: Option, + /// MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. + /// This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabelKeys")] + pub match_label_keys: Option>, + /// MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed. + #[serde(rename = "maxSkew")] + pub max_skew: i32, + /// MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. + /// For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. + /// This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default). + #[serde(default, skip_serializing_if = "Option::is_none", rename = "minDomains")] + pub min_domains: Option, + /// NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. + /// If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeAffinityPolicy")] + pub node_affinity_policy: Option, + /// NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. + /// If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeTaintsPolicy")] + pub node_taints_policy: Option, + /// TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field. + #[serde(rename = "topologyKey")] + pub topology_key: String, + /// WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field. + #[serde(rename = "whenUnsatisfiable")] + pub when_unsatisfiable: String, +} + +/// LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct MariaDBTopologySpreadConstraintsLabelSelector { + /// matchExpressions is a list of label selector requirements. The requirements are ANDed. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] + pub match_expressions: Option>, + /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] + pub match_labels: Option>, +} + +/// A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct MariaDBTopologySpreadConstraintsLabelSelectorMatchExpressions { + /// key is the label key that the selector applies to. + pub key: String, + /// operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + pub operator: String, + /// values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub values: Option>, +} + /// PodDisruptionBudget defines the update strategy for the StatefulSet object. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct MariaDBUpdateStrategy { 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 edf4683fe..65c07a8b2 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 @@ -17,6 +17,9 @@ pub struct RestoreSpec { /// Affinity to be used in the Restore Pod. #[serde(default, skip_serializing_if = "Option::is_none")] pub affinity: Option, + /// Args to be used in the Restore container. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub args: 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, @@ -32,6 +35,9 @@ pub struct RestoreSpec { /// NodeSelector to be used in the Restore Pod. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeSelector")] pub node_selector: Option>, + /// 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, /// Resouces describes the compute resource requirements. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, @@ -41,6 +47,9 @@ pub struct RestoreSpec { /// S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume. #[serde(default, skip_serializing_if = "Option::is_none")] pub s3: Option, + /// 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, /// TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective. It is used to determine the closest restoration source in time. #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetRecoveryTime")] pub target_recovery_time: Option, @@ -495,6 +504,98 @@ pub struct RestoreMariaDbRef { pub wait_for_it: Option, } +/// SecurityContext holds pod-level security attributes and common container settings. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct RestorePodSecurityContext { + /// 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, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. 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 RestorePodSecurityContextSeLinuxOptions { + /// 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 RestorePodSecurityContextSeccompProfile { + /// 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 be set if type is "Localhost". Must NOT be set for any other type. + #[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 RestorePodSecurityContextSysctls { + /// 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 RestorePodSecurityContextWindowsOptions { + /// 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. 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, +} + /// Resouces describes the compute resource requirements. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RestoreResources { @@ -536,6 +637,9 @@ pub struct RestoreS3 { pub bucket: String, /// Endpoint is the S3 API endpoint without scheme. pub endpoint: String, + /// Prefix allows backups to be placed under a specific prefix in the bucket. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub prefix: Option, /// Region is the S3 region name to use. #[serde(default, skip_serializing_if = "Option::is_none")] pub region: Option, @@ -613,6 +717,101 @@ pub struct RestoreS3TlsCaSecretKeyRef { pub optional: Option, } +/// SecurityContext holds security configuration that will be applied to a container. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct RestoreSecurityContext { + /// 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 RestoreSecurityContextCapabilities { + /// 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 RestoreSecurityContextSeLinuxOptions { + /// 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 RestoreSecurityContextSeccompProfile { + /// 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 be set if type is "Localhost". Must NOT be set for any other type. + #[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 RestoreSecurityContextWindowsOptions { + /// 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. 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, +} + /// 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 { 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 c4815e188..5d33e807a 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 @@ -35,6 +35,9 @@ pub struct SqlJobSpec { /// 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, + /// 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, /// Resouces describes the compute resource requirements. #[serde(default, skip_serializing_if = "Option::is_none")] pub resources: Option, @@ -44,6 +47,9 @@ pub struct SqlJobSpec { /// Schedule defines when the SqlJob will be executed. #[serde(default, skip_serializing_if = "Option::is_none")] pub schedule: Option, + /// 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, /// Sql is the script to be executed by the SqlJob. #[serde(default, skip_serializing_if = "Option::is_none")] pub sql: Option, @@ -513,6 +519,98 @@ pub struct SqlJobPasswordSecretKeyRef { pub optional: Option, } +/// SecurityContext holds pod-level security attributes and common container settings. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct SqlJobPodSecurityContext { + /// 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, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. 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 SqlJobPodSecurityContextSeLinuxOptions { + /// 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 SqlJobPodSecurityContextSeccompProfile { + /// 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 be set if type is "Localhost". Must NOT be set for any other type. + #[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 SqlJobPodSecurityContextSysctls { + /// 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 SqlJobPodSecurityContextWindowsOptions { + /// 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. 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, +} + /// Resouces describes the compute resource requirements. #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct SqlJobResources { @@ -554,6 +652,101 @@ pub struct SqlJobSchedule { pub suspend: Option, } +/// SecurityContext holds security configuration that will be applied to a container. +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] +pub struct SqlJobSecurityContext { + /// 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 SqlJobSecurityContextCapabilities { + /// 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 SqlJobSecurityContextSeLinuxOptions { + /// 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 SqlJobSecurityContextSeccompProfile { + /// 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 be set if type is "Localhost". Must NOT be set for any other type. + #[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 SqlJobSecurityContextWindowsOptions { + /// 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. 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, +} + /// 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 { diff --git a/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/scrapeconfigs.rs b/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/scrapeconfigs.rs index e8fe4f133..cbdb9ea32 100644 --- a/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/scrapeconfigs.rs +++ b/kube-custom-resources-rs/src/monitoring_coreos_com/v1alpha1/scrapeconfigs.rs @@ -30,6 +30,11 @@ pub struct ScrapeConfigSpec { /// EC2SDConfigs defines a list of EC2 service discovery configurations. #[serde(default, skip_serializing_if = "Option::is_none", rename = "ec2SDConfigs")] pub ec2_sd_configs: Option>, + /// When false, Prometheus will request uncompressed response from the scraped target. + /// It requires Prometheus >= v2.49.0. + /// If unset, Prometheus uses true by default. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "enableCompression")] + pub enable_compression: Option, /// FileSDConfigs defines a list of file service discovery configurations. #[serde(default, skip_serializing_if = "Option::is_none", rename = "fileSDConfigs")] pub file_sd_configs: Option>, diff --git a/kube-custom-resources-rs/src/opentelemetry_io/v1alpha1/opentelemetrycollectors.rs b/kube-custom-resources-rs/src/opentelemetry_io/v1alpha1/opentelemetrycollectors.rs index 870e19414..8cb875e99 100644 --- a/kube-custom-resources-rs/src/opentelemetry_io/v1alpha1/opentelemetrycollectors.rs +++ b/kube-custom-resources-rs/src/opentelemetry_io/v1alpha1/opentelemetrycollectors.rs @@ -32,6 +32,9 @@ pub struct OpenTelemetryCollectorSpec { /// ConfigMaps is a list of ConfigMaps in the same namespace as the OpenTelemetryCollector object, which shall be mounted into the Collector Pods. #[serde(default, skip_serializing_if = "Option::is_none")] pub configmaps: Option>, + /// UpdateStrategy represents the strategy the operator will take replacing existing Deployment pods with new pods https://kubernetes. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "deploymentUpdateStrategy")] + pub deployment_update_strategy: Option, /// ENV vars to set on the OpenTelemetry Collector's Pods. These can then in certain cases be consumed in the config file for the Collector. #[serde(default, skip_serializing_if = "Option::is_none")] pub env: Option>, @@ -104,6 +107,9 @@ pub struct OpenTelemetryCollectorSpec { /// ServiceAccount indicates the name of an existing service account to use with this instance. When set, the operator will not automatically create a ServiceAccount for the collector. #[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccount")] pub service_account: Option, + /// ShareProcessNamespace indicates if the pod's containers should share process namespace. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "shareProcessNamespace")] + pub share_process_namespace: Option, /// TargetAllocator indicates a value which determines whether to spawn a target allocation resource or not. #[serde(default, skip_serializing_if = "Option::is_none", rename = "targetAllocator")] pub target_allocator: Option, @@ -1524,6 +1530,28 @@ pub struct OpenTelemetryCollectorConfigmaps { pub name: String, } +/// UpdateStrategy represents the strategy the operator will take replacing existing Deployment pods with new pods https://kubernetes. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct OpenTelemetryCollectorDeploymentUpdateStrategy { + /// Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. --- TODO: Update this to follow our convention for oneOf, whatever we decide it to be. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "rollingUpdate")] + pub rolling_update: Option, + /// Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")] + pub r#type: Option, +} + +/// Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. --- TODO: Update this to follow our convention for oneOf, whatever we decide it to be. +#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] +pub struct OpenTelemetryCollectorDeploymentUpdateStrategyRollingUpdate { + /// The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxSurge")] + pub max_surge: Option, + /// The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxUnavailable")] + pub max_unavailable: Option, +} + /// EnvVar represents an environment variable present in a Container. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct OpenTelemetryCollectorEnv { diff --git a/kube-custom-resources-rs/src/operations_kubeedge_io/v1alpha1/nodeupgradejobs.rs b/kube-custom-resources-rs/src/operations_kubeedge_io/v1alpha1/nodeupgradejobs.rs index 04e809a3a..6e257e644 100644 --- a/kube-custom-resources-rs/src/operations_kubeedge_io/v1alpha1/nodeupgradejobs.rs +++ b/kube-custom-resources-rs/src/operations_kubeedge_io/v1alpha1/nodeupgradejobs.rs @@ -12,9 +12,15 @@ use std::collections::BTreeMap; #[kube(status = "NodeUpgradeJobStatus")] #[kube(schema = "disabled")] pub struct NodeUpgradeJobSpec { + /// CheckItems specifies the items need to be checked before the task is executed. The default CheckItems value is nil. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "checkItems")] + pub check_items: Option>, /// Concurrency specifies the max number of edge nodes that can be upgraded at the same time. The default Concurrency value is 1. #[serde(default, skip_serializing_if = "Option::is_none")] pub concurrency: Option, + /// FailureTolerate specifies the task tolerance failure ratio. The default FailureTolerate value is 0.1. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "failureTolerate")] + pub failure_tolerate: Option, /// Image specifies a container image name, the image contains: keadm and edgecore. keadm is used as upgradetool, to install the new version of edgecore. The image name consists of registry hostname and repository name, if it includes the tag or digest, the tag or digest will be overwritten by Version field above. If the registry hostname is empty, docker.io will be used as default. The default image name is: kubeedge/installation-package. #[serde(default, skip_serializing_if = "Option::is_none")] pub image: Option, @@ -27,9 +33,6 @@ pub struct NodeUpgradeJobSpec { /// TimeoutSeconds limits the duration of the node upgrade job. Default to 300. If set to 0, we'll use the default value 300. #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] pub timeout_seconds: Option, - /// UpgradeTool is a request to decide use which upgrade tool. If it is empty, the upgrade job simply use default upgrade tool keadm to do upgrade operation. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "upgradeTool")] - pub upgrade_tool: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, } @@ -60,77 +63,52 @@ pub struct NodeUpgradeJobLabelSelectorMatchExpressions { /// Most recently observed status of the NodeUpgradeJob. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct NodeUpgradeJobStatus { - /// State represents for the state phase of the NodeUpgradeJob. There are three possible state values: "", upgrading and completed. + /// Action represents for the action of the ImagePrePullJob. There are two possible action values: Success, Failure. #[serde(default, skip_serializing_if = "Option::is_none")] - pub state: Option, + pub action: Option, + /// CurrentVersion represents for the current status of the EdgeCore. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "currentVersion")] + pub current_version: Option, + /// Event represents for the event of the ImagePrePullJob. There are six possible event values: Init, Check, BackUp, Upgrade, TimeOut, Rollback. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub event: Option, + /// HistoricVersion represents for the historic status of the EdgeCore. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "historicVersion")] + pub historic_version: Option, /// Status contains upgrade Status for each edge node. + #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeStatus")] + pub node_status: Option>, + /// Reason represents for the reason of the ImagePrePullJob. #[serde(default, skip_serializing_if = "Option::is_none")] - pub status: Option>, -} - -/// Most recently observed status of the NodeUpgradeJob. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub enum NodeUpgradeJobStatusState { - #[serde(rename = "upgrading")] - Upgrading, - #[serde(rename = "completed")] - Completed, + pub reason: Option, + /// State represents for the state phase of the NodeUpgradeJob. There are several possible state values: "", Upgrading, BackingUp, RollingBack and Checking. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub state: Option, + /// Time represents for the running time of the ImagePrePullJob. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub time: Option, } -/// UpgradeStatus stores the status of Upgrade for each edge node. +/// TaskStatus stores the status of Upgrade for each edge node. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] -pub struct NodeUpgradeJobStatusStatus { - /// History is the last upgrade result of the edge node. +pub struct NodeUpgradeJobStatusNodeStatus { + /// Action represents for the action of the ImagePrePullJob. There are three possible action values: Success, Failure, TimeOut. #[serde(default, skip_serializing_if = "Option::is_none")] - pub history: Option, + pub action: Option, + /// Event represents for the event of the ImagePrePullJob. There are three possible event values: Init, Check, Pull. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub event: Option, /// NodeName is the name of edge node. #[serde(default, skip_serializing_if = "Option::is_none", rename = "nodeName")] pub node_name: Option, - /// State represents for the upgrade state phase of the edge node. There are three possible state values: "", upgrading and completed. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub state: Option, -} - -/// History is the last upgrade result of the edge node. -#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] -pub struct NodeUpgradeJobStatusStatusHistory { - /// FromVersion is the version which the edge node is upgraded from. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "fromVersion")] - pub from_version: Option, - /// HistoryID is to uniquely identify an Upgrade Operation. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "historyID")] - pub history_id: Option, - /// Reason is the error reason of Upgrade failure. If the upgrade is successful, this reason is an empty string. + /// Reason represents for the reason of the ImagePrePullJob. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Result represents the result of upgrade. + /// State represents for the upgrade state phase of the edge node. There are several possible state values: "", Upgrading, BackingUp, RollingBack and Checking. #[serde(default, skip_serializing_if = "Option::is_none")] - pub result: Option, - /// ToVersion is the version which the edge node is upgraded to. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "toVersion")] - pub to_version: Option, - /// UpgradeTime is the time of this Upgrade. - #[serde(default, skip_serializing_if = "Option::is_none", rename = "upgradeTime")] - pub upgrade_time: Option, -} - -/// History is the last upgrade result of the edge node. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub enum NodeUpgradeJobStatusStatusHistoryResult { - #[serde(rename = "upgrade_success")] - UpgradeSuccess, - #[serde(rename = "upgrade_failed_rollback_success")] - UpgradeFailedRollbackSuccess, - #[serde(rename = "upgrade_failed_rollback_failed")] - UpgradeFailedRollbackFailed, -} - -/// UpgradeStatus stores the status of Upgrade for each edge node. -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub enum NodeUpgradeJobStatusStatusState { - #[serde(rename = "upgrading")] - Upgrading, - #[serde(rename = "completed")] - Completed, + pub state: Option, + /// Time represents for the running time of the ImagePrePullJob. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub time: 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 e7f2b8154..d9ac51361 100644 --- a/kube-custom-resources-rs/src/ray_io/v1/rayclusters.rs +++ b/kube-custom-resources-rs/src/ray_io/v1/rayclusters.rs @@ -3264,6 +3264,8 @@ pub struct RayClusterWorkerGroupSpecs { pub max_replicas: i32, #[serde(rename = "minReplicas")] pub min_replicas: i32, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "numOfHosts")] + pub num_of_hosts: Option, #[serde(rename = "rayStartParams")] pub ray_start_params: BTreeMap, #[serde(default, skip_serializing_if = "Option::is_none")] 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 17270e562..341c7796d 100644 --- a/kube-custom-resources-rs/src/ray_io/v1/rayjobs.rs +++ b/kube-custom-resources-rs/src/ray_io/v1/rayjobs.rs @@ -3293,6 +3293,8 @@ pub struct RayJobRayClusterSpecWorkerGroupSpecs { pub max_replicas: i32, #[serde(rename = "minReplicas")] pub min_replicas: i32, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "numOfHosts")] + pub num_of_hosts: Option, #[serde(rename = "rayStartParams")] pub ray_start_params: BTreeMap, #[serde(default, skip_serializing_if = "Option::is_none")] 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 05e398d69..96ed6c0b7 100644 --- a/kube-custom-resources-rs/src/ray_io/v1/rayservices.rs +++ b/kube-custom-resources-rs/src/ray_io/v1/rayservices.rs @@ -3278,6 +3278,8 @@ pub struct RayServiceRayClusterConfigWorkerGroupSpecs { pub max_replicas: i32, #[serde(rename = "minReplicas")] pub min_replicas: i32, + #[serde(default, skip_serializing_if = "Option::is_none", rename = "numOfHosts")] + pub num_of_hosts: Option, #[serde(rename = "rayStartParams")] pub ray_start_params: BTreeMap, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -6318,8 +6320,6 @@ pub struct RayServiceStatus { pub struct RayServiceStatusActiveServiceStatus { #[serde(default, skip_serializing_if = "Option::is_none", rename = "applicationStatuses")] pub application_statuses: Option>, - #[serde(default, skip_serializing_if = "Option::is_none", rename = "dashboardStatus")] - pub dashboard_status: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "rayClusterName")] pub ray_cluster_name: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "rayClusterStatus")] @@ -6348,14 +6348,6 @@ pub struct RayServiceStatusActiveServiceStatusApplicationStatusesServeDeployment pub status: Option, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct RayServiceStatusActiveServiceStatusDashboardStatus { - #[serde(default, skip_serializing_if = "Option::is_none", rename = "healthLastUpdateTime")] - pub health_last_update_time: Option, - #[serde(default, skip_serializing_if = "Option::is_none", rename = "isHealthy")] - pub is_healthy: Option, -} - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RayServiceStatusActiveServiceStatusRayClusterStatus { #[serde(default, skip_serializing_if = "Option::is_none", rename = "availableWorkerReplicas")] @@ -6400,8 +6392,6 @@ pub struct RayServiceStatusActiveServiceStatusRayClusterStatusHead { pub struct RayServiceStatusPendingServiceStatus { #[serde(default, skip_serializing_if = "Option::is_none", rename = "applicationStatuses")] pub application_statuses: Option>, - #[serde(default, skip_serializing_if = "Option::is_none", rename = "dashboardStatus")] - pub dashboard_status: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "rayClusterName")] pub ray_cluster_name: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "rayClusterStatus")] @@ -6430,14 +6420,6 @@ pub struct RayServiceStatusPendingServiceStatusApplicationStatusesServeDeploymen pub status: Option, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct RayServiceStatusPendingServiceStatusDashboardStatus { - #[serde(default, skip_serializing_if = "Option::is_none", rename = "healthLastUpdateTime")] - pub health_last_update_time: Option, - #[serde(default, skip_serializing_if = "Option::is_none", rename = "isHealthy")] - pub is_healthy: Option, -} - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RayServiceStatusPendingServiceStatusRayClusterStatus { #[serde(default, skip_serializing_if = "Option::is_none", rename = "availableWorkerReplicas")] diff --git a/kube-custom-resources-rs/src/ray_io/v1alpha1/rayservices.rs b/kube-custom-resources-rs/src/ray_io/v1alpha1/rayservices.rs index b27170910..973409bfc 100644 --- a/kube-custom-resources-rs/src/ray_io/v1alpha1/rayservices.rs +++ b/kube-custom-resources-rs/src/ray_io/v1alpha1/rayservices.rs @@ -6318,8 +6318,6 @@ pub struct RayServiceStatus { pub struct RayServiceStatusActiveServiceStatus { #[serde(default, skip_serializing_if = "Option::is_none", rename = "applicationStatuses")] pub application_statuses: Option>, - #[serde(default, skip_serializing_if = "Option::is_none", rename = "dashboardStatus")] - pub dashboard_status: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "rayClusterName")] pub ray_cluster_name: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "rayClusterStatus")] @@ -6348,14 +6346,6 @@ pub struct RayServiceStatusActiveServiceStatusApplicationStatusesServeDeployment pub status: Option, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct RayServiceStatusActiveServiceStatusDashboardStatus { - #[serde(default, skip_serializing_if = "Option::is_none", rename = "healthLastUpdateTime")] - pub health_last_update_time: Option, - #[serde(default, skip_serializing_if = "Option::is_none", rename = "isHealthy")] - pub is_healthy: Option, -} - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RayServiceStatusActiveServiceStatusRayClusterStatus { #[serde(default, skip_serializing_if = "Option::is_none", rename = "availableWorkerReplicas")] @@ -6400,8 +6390,6 @@ pub struct RayServiceStatusActiveServiceStatusRayClusterStatusHead { pub struct RayServiceStatusPendingServiceStatus { #[serde(default, skip_serializing_if = "Option::is_none", rename = "applicationStatuses")] pub application_statuses: Option>, - #[serde(default, skip_serializing_if = "Option::is_none", rename = "dashboardStatus")] - pub dashboard_status: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "rayClusterName")] pub ray_cluster_name: Option, #[serde(default, skip_serializing_if = "Option::is_none", rename = "rayClusterStatus")] @@ -6430,14 +6418,6 @@ pub struct RayServiceStatusPendingServiceStatusApplicationStatusesServeDeploymen pub status: Option, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] -pub struct RayServiceStatusPendingServiceStatusDashboardStatus { - #[serde(default, skip_serializing_if = "Option::is_none", rename = "healthLastUpdateTime")] - pub health_last_update_time: Option, - #[serde(default, skip_serializing_if = "Option::is_none", rename = "isHealthy")] - pub is_healthy: Option, -} - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct RayServiceStatusPendingServiceStatusRayClusterStatus { #[serde(default, skip_serializing_if = "Option::is_none", rename = "availableWorkerReplicas")] diff --git a/kube-custom-resources-rs/src/resources_teleport_dev/v1/teleportloginrules.rs b/kube-custom-resources-rs/src/resources_teleport_dev/v1/teleportloginrules.rs index 4046518d9..d5476d299 100644 --- a/kube-custom-resources-rs/src/resources_teleport_dev/v1/teleportloginrules.rs +++ b/kube-custom-resources-rs/src/resources_teleport_dev/v1/teleportloginrules.rs @@ -33,31 +33,71 @@ pub struct TeleportLoginRuleStatus { pub teleport_resource_id: Option, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct TeleportLoginRuleStatusConditions { - /// lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// lastTransitionTime is the last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// message is a human readable message indicating details about the transition. This may be an empty string. + /// message is a human readable message indicating details about the transition. + /// This may be an empty string. pub message: String, - /// observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + /// observedGeneration represents the .metadata.generation that the condition was set based upon. + /// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + /// with respect to the current state of the instance. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + /// reason contains a programmatic identifier indicating the reason for the condition's last transition. + /// Producers of specific condition types may define expected values and meanings for this field, + /// and whether the values are considered a guaranteed API. + /// The value should be a CamelCase string. + /// This field may not be empty. pub reason: String, /// status of the condition, one of True, False, Unknown. pub status: TeleportLoginRuleStatusConditionsStatus, - /// type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + /// type of condition in CamelCase or in foo.example.com/CamelCase. + /// --- + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + /// useful (see .node.status.conditions), the ability to deconflict is important. + /// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) #[serde(rename = "type")] pub r#type: String, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum TeleportLoginRuleStatusConditionsStatus { True, diff --git a/kube-custom-resources-rs/src/resources_teleport_dev/v1/teleportoktaimportrules.rs b/kube-custom-resources-rs/src/resources_teleport_dev/v1/teleportoktaimportrules.rs index d3d325435..bc69f108c 100644 --- a/kube-custom-resources-rs/src/resources_teleport_dev/v1/teleportoktaimportrules.rs +++ b/kube-custom-resources-rs/src/resources_teleport_dev/v1/teleportoktaimportrules.rs @@ -64,31 +64,71 @@ pub struct TeleportOktaImportRuleStatus { pub teleport_resource_id: Option, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct TeleportOktaImportRuleStatusConditions { - /// lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// lastTransitionTime is the last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// message is a human readable message indicating details about the transition. This may be an empty string. + /// message is a human readable message indicating details about the transition. + /// This may be an empty string. pub message: String, - /// observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + /// observedGeneration represents the .metadata.generation that the condition was set based upon. + /// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + /// with respect to the current state of the instance. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + /// reason contains a programmatic identifier indicating the reason for the condition's last transition. + /// Producers of specific condition types may define expected values and meanings for this field, + /// and whether the values are considered a guaranteed API. + /// The value should be a CamelCase string. + /// This field may not be empty. pub reason: String, /// status of the condition, one of True, False, Unknown. pub status: TeleportOktaImportRuleStatusConditionsStatus, - /// type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + /// type of condition in CamelCase or in foo.example.com/CamelCase. + /// --- + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + /// useful (see .node.status.conditions), the ability to deconflict is important. + /// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) #[serde(rename = "type")] pub r#type: String, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum TeleportOktaImportRuleStatusConditionsStatus { True, diff --git a/kube-custom-resources-rs/src/resources_teleport_dev/v2/teleportsamlconnectors.rs b/kube-custom-resources-rs/src/resources_teleport_dev/v2/teleportsamlconnectors.rs index 90527fe7c..a4671c5c7 100644 --- a/kube-custom-resources-rs/src/resources_teleport_dev/v2/teleportsamlconnectors.rs +++ b/kube-custom-resources-rs/src/resources_teleport_dev/v2/teleportsamlconnectors.rs @@ -101,31 +101,71 @@ pub struct TeleportSAMLConnectorStatus { pub teleport_resource_id: Option, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct TeleportSAMLConnectorStatusConditions { - /// lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// lastTransitionTime is the last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// message is a human readable message indicating details about the transition. This may be an empty string. + /// message is a human readable message indicating details about the transition. + /// This may be an empty string. pub message: String, - /// observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + /// observedGeneration represents the .metadata.generation that the condition was set based upon. + /// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + /// with respect to the current state of the instance. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + /// reason contains a programmatic identifier indicating the reason for the condition's last transition. + /// Producers of specific condition types may define expected values and meanings for this field, + /// and whether the values are considered a guaranteed API. + /// The value should be a CamelCase string. + /// This field may not be empty. pub reason: String, /// status of the condition, one of True, False, Unknown. pub status: TeleportSAMLConnectorStatusConditionsStatus, - /// type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + /// type of condition in CamelCase or in foo.example.com/CamelCase. + /// --- + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + /// useful (see .node.status.conditions), the ability to deconflict is important. + /// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) #[serde(rename = "type")] pub r#type: String, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum TeleportSAMLConnectorStatusConditionsStatus { True, diff --git a/kube-custom-resources-rs/src/resources_teleport_dev/v2/teleportusers.rs b/kube-custom-resources-rs/src/resources_teleport_dev/v2/teleportusers.rs index 74be5e314..bdc64d452 100644 --- a/kube-custom-resources-rs/src/resources_teleport_dev/v2/teleportusers.rs +++ b/kube-custom-resources-rs/src/resources_teleport_dev/v2/teleportusers.rs @@ -73,31 +73,71 @@ pub struct TeleportUserStatus { pub teleport_resource_id: Option, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct TeleportUserStatusConditions { - /// lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// lastTransitionTime is the last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// message is a human readable message indicating details about the transition. This may be an empty string. + /// message is a human readable message indicating details about the transition. + /// This may be an empty string. pub message: String, - /// observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + /// observedGeneration represents the .metadata.generation that the condition was set based upon. + /// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + /// with respect to the current state of the instance. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + /// reason contains a programmatic identifier indicating the reason for the condition's last transition. + /// Producers of specific condition types may define expected values and meanings for this field, + /// and whether the values are considered a guaranteed API. + /// The value should be a CamelCase string. + /// This field may not be empty. pub reason: String, /// status of the condition, one of True, False, Unknown. pub status: TeleportUserStatusConditionsStatus, - /// type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + /// type of condition in CamelCase or in foo.example.com/CamelCase. + /// --- + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + /// useful (see .node.status.conditions), the ability to deconflict is important. + /// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) #[serde(rename = "type")] pub r#type: String, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum TeleportUserStatusConditionsStatus { True, diff --git a/kube-custom-resources-rs/src/resources_teleport_dev/v3/teleportgithubconnectors.rs b/kube-custom-resources-rs/src/resources_teleport_dev/v3/teleportgithubconnectors.rs index 2f78ad6e9..ac72d5cbb 100644 --- a/kube-custom-resources-rs/src/resources_teleport_dev/v3/teleportgithubconnectors.rs +++ b/kube-custom-resources-rs/src/resources_teleport_dev/v3/teleportgithubconnectors.rs @@ -58,31 +58,71 @@ pub struct TeleportGithubConnectorStatus { pub teleport_resource_id: Option, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct TeleportGithubConnectorStatusConditions { - /// lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// lastTransitionTime is the last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// message is a human readable message indicating details about the transition. This may be an empty string. + /// message is a human readable message indicating details about the transition. + /// This may be an empty string. pub message: String, - /// observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + /// observedGeneration represents the .metadata.generation that the condition was set based upon. + /// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + /// with respect to the current state of the instance. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + /// reason contains a programmatic identifier indicating the reason for the condition's last transition. + /// Producers of specific condition types may define expected values and meanings for this field, + /// and whether the values are considered a guaranteed API. + /// The value should be a CamelCase string. + /// This field may not be empty. pub reason: String, /// status of the condition, one of True, False, Unknown. pub status: TeleportGithubConnectorStatusConditionsStatus, - /// type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + /// type of condition in CamelCase or in foo.example.com/CamelCase. + /// --- + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + /// useful (see .node.status.conditions), the ability to deconflict is important. + /// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) #[serde(rename = "type")] pub r#type: String, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum TeleportGithubConnectorStatusConditionsStatus { True, diff --git a/kube-custom-resources-rs/src/resources_teleport_dev/v3/teleportoidcconnectors.rs b/kube-custom-resources-rs/src/resources_teleport_dev/v3/teleportoidcconnectors.rs index 3a103b420..47c3ea7a5 100644 --- a/kube-custom-resources-rs/src/resources_teleport_dev/v3/teleportoidcconnectors.rs +++ b/kube-custom-resources-rs/src/resources_teleport_dev/v3/teleportoidcconnectors.rs @@ -85,31 +85,71 @@ pub struct TeleportOIDCConnectorStatus { pub teleport_resource_id: Option, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub struct TeleportOIDCConnectorStatusConditions { - /// lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// lastTransitionTime is the last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// message is a human readable message indicating details about the transition. This may be an empty string. + /// message is a human readable message indicating details about the transition. + /// This may be an empty string. pub message: String, - /// observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + /// observedGeneration represents the .metadata.generation that the condition was set based upon. + /// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + /// with respect to the current state of the instance. #[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")] pub observed_generation: Option, - /// reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty. + /// reason contains a programmatic identifier indicating the reason for the condition's last transition. + /// Producers of specific condition types may define expected values and meanings for this field, + /// and whether the values are considered a guaranteed API. + /// The value should be a CamelCase string. + /// This field may not be empty. pub reason: String, /// status of the condition, one of True, False, Unknown. pub status: TeleportOIDCConnectorStatusConditionsStatus, - /// type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + /// type of condition in CamelCase or in foo.example.com/CamelCase. + /// --- + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + /// useful (see .node.status.conditions), the ability to deconflict is important. + /// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) #[serde(rename = "type")] pub r#type: String, } -/// 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, -/// 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"` -/// // other fields } +/// 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, +/// +/// +/// 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"` +/// +/// +/// // other fields +/// } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] pub enum TeleportOIDCConnectorStatusConditionsStatus { True, diff --git a/kube-custom-resources-rs/src/runtime_cluster_x_k8s_io/v1alpha1/extensionconfigs.rs b/kube-custom-resources-rs/src/runtime_cluster_x_k8s_io/v1alpha1/extensionconfigs.rs index 77e0b7476..e051b3f98 100644 --- a/kube-custom-resources-rs/src/runtime_cluster_x_k8s_io/v1alpha1/extensionconfigs.rs +++ b/kube-custom-resources-rs/src/runtime_cluster_x_k8s_io/v1alpha1/extensionconfigs.rs @@ -15,10 +15,14 @@ pub struct ExtensionConfigSpec { /// ClientConfig defines how to communicate with the Extension server. #[serde(rename = "clientConfig")] pub client_config: ExtensionConfigClientConfig, - /// NamespaceSelector decides whether to call the hook for an object based on whether the namespace for that object matches the selector. Defaults to the empty LabelSelector, which matches all objects. + /// NamespaceSelector decides whether to call the hook for an object based + /// on whether the namespace for that object matches the selector. + /// Defaults to the empty LabelSelector, which matches all objects. #[serde(default, skip_serializing_if = "Option::is_none", rename = "namespaceSelector")] pub namespace_selector: Option, - /// Settings defines key value pairs to be passed to all calls to all supported RuntimeExtensions. Note: Settings can be overridden on the ClusterClass. + /// Settings defines key value pairs to be passed to all calls + /// to all supported RuntimeExtensions. + /// Note: Settings can be overridden on the ClusterClass. #[serde(default, skip_serializing_if = "Option::is_none")] pub settings: Option>, } @@ -29,54 +33,86 @@ pub struct ExtensionConfigClientConfig { /// CABundle is a PEM encoded CA bundle which will be used to validate the Extension server's server certificate. #[serde(default, skip_serializing_if = "Option::is_none", rename = "caBundle")] pub ca_bundle: Option, - /// Service is a reference to the Kubernetes service for the Extension server. Note: Exactly one of `url` or `service` must be specified. - /// If the Extension server is running within a cluster, then you should use `service`. + /// Service is a reference to the Kubernetes service for the Extension server. + /// Note: Exactly one of `url` or `service` must be specified. + /// + /// + /// If the Extension server is running within a cluster, then you should use `service`. #[serde(default, skip_serializing_if = "Option::is_none")] pub service: Option, - /// URL gives the location of the Extension server, in standard URL form (`scheme://host:port/path`). Note: Exactly one of `url` or `service` must be specified. - /// The scheme must be "https". - /// The `host` should not refer to a service running in the cluster; use the `service` field instead. - /// A path is optional, and if present may be any string permissible in a URL. If a path is set it will be used as prefix to the hook-specific path. - /// Attempting to use a user or basic auth e.g. "user:password@" is not allowed. Fragments ("#...") and query parameters ("?...") are not allowed either. + /// URL gives the location of the Extension server, in standard URL form + /// (`scheme://host:port/path`). + /// Note: Exactly one of `url` or `service` must be specified. + /// + /// + /// The scheme must be "https". + /// + /// + /// The `host` should not refer to a service running in the cluster; use + /// the `service` field instead. + /// + /// + /// A path is optional, and if present may be any string permissible in + /// a URL. If a path is set it will be used as prefix to the hook-specific path. + /// + /// + /// Attempting to use a user or basic auth e.g. "user:password@" is not + /// allowed. Fragments ("#...") and query parameters ("?...") are not + /// allowed either. #[serde(default, skip_serializing_if = "Option::is_none")] pub url: Option, } -/// Service is a reference to the Kubernetes service for the Extension server. Note: Exactly one of `url` or `service` must be specified. -/// If the Extension server is running within a cluster, then you should use `service`. +/// Service is a reference to the Kubernetes service for the Extension server. +/// Note: Exactly one of `url` or `service` must be specified. +/// +/// +/// If the Extension server is running within a cluster, then you should use `service`. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ExtensionConfigClientConfigService { /// Name is the name of the service. pub name: String, /// Namespace is the namespace of the service. pub namespace: String, - /// Path is an optional URL path and if present may be any string permissible in a URL. If a path is set it will be used as prefix to the hook-specific path. + /// Path is an optional URL path and if present may be any string permissible in + /// a URL. If a path is set it will be used as prefix to the hook-specific path. #[serde(default, skip_serializing_if = "Option::is_none")] pub path: Option, - /// Port is the port on the service that's hosting the Extension server. Defaults to 443. Port should be a valid port number (1-65535, inclusive). + /// Port is the port on the service that's hosting the Extension server. + /// Defaults to 443. + /// Port should be a valid port number (1-65535, inclusive). #[serde(default, skip_serializing_if = "Option::is_none")] pub port: Option, } -/// NamespaceSelector decides whether to call the hook for an object based on whether the namespace for that object matches the selector. Defaults to the empty LabelSelector, which matches all objects. +/// NamespaceSelector decides whether to call the hook for an object based +/// on whether the namespace for that object matches the selector. +/// Defaults to the empty LabelSelector, which matches all objects. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ExtensionConfigNamespaceSelector { /// matchExpressions is a list of label selector requirements. The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")] pub match_expressions: Option>, - /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + /// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + /// map is equivalent to an element of matchExpressions, whose key field is "key", the + /// operator is "In", and the values array contains only "value". The requirements are ANDed. #[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")] pub match_labels: Option>, } -/// A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. +/// A label selector requirement is a selector that contains values, a key, and an operator that +/// relates the key and values. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ExtensionConfigNamespaceSelectorMatchExpressions { /// key is the label key that the selector applies to. pub key: String, - /// operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + /// operator represents a key's relationship to a set of values. + /// Valid operators are In, NotIn, Exists and DoesNotExist. pub operator: String, - /// values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + /// values is an array of string values. If the operator is In or NotIn, + /// the values array must be non-empty. If the operator is Exists or DoesNotExist, + /// the values array must be empty. This array is replaced during a strategic + /// merge patch. #[serde(default, skip_serializing_if = "Option::is_none")] pub values: Option>, } @@ -95,21 +131,30 @@ pub struct ExtensionConfigStatus { /// Condition defines an observation of a Cluster API resource operational state. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ExtensionConfigStatusConditions { - /// Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + /// Last time the condition transitioned from one status to another. + /// This should be when the underlying condition changed. If that is not known, then using the time when + /// the API field changed is acceptable. #[serde(rename = "lastTransitionTime")] pub last_transition_time: String, - /// A human readable message indicating details about the transition. This field may be empty. + /// A human readable message indicating details about the transition. + /// This field may be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, - /// The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty. + /// The reason for the condition's last transition in CamelCase. + /// The specific API may choose whether or not this field is considered a guaranteed API. + /// This field may not be empty. #[serde(default, skip_serializing_if = "Option::is_none")] pub reason: Option, - /// Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. + /// Severity provides an explicit classification of Reason code, so the users or machines can immediately + /// understand the current situation and act accordingly. + /// The Severity field MUST be set only when Status=False. #[serde(default, skip_serializing_if = "Option::is_none")] pub severity: Option, /// Status of the condition, one of True, False, Unknown. pub status: String, - /// Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. + /// Type of condition in CamelCase or in foo.example.com/CamelCase. + /// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + /// can be useful (see .node.status.conditions), the ability to deconflict is important. #[serde(rename = "type")] pub r#type: String, } @@ -117,7 +162,8 @@ pub struct ExtensionConfigStatusConditions { /// ExtensionHandler specifies the details of a handler for a particular runtime hook registered by an Extension server. #[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)] pub struct ExtensionConfigStatusHandlers { - /// FailurePolicy defines how failures in calls to the ExtensionHandler should be handled by a client. Defaults to Fail if not set. + /// FailurePolicy defines how failures in calls to the ExtensionHandler should be handled by a client. + /// Defaults to Fail if not set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "failurePolicy")] pub failure_policy: Option, /// Name is the unique name of the ExtensionHandler. @@ -125,7 +171,8 @@ pub struct ExtensionConfigStatusHandlers { /// RequestHook defines the versioned runtime hook which this ExtensionHandler serves. #[serde(rename = "requestHook")] pub request_hook: ExtensionConfigStatusHandlersRequestHook, - /// TimeoutSeconds defines the timeout duration for client calls to the ExtensionHandler. Defaults to 10 is not set. + /// TimeoutSeconds defines the timeout duration for client calls to the ExtensionHandler. + /// Defaults to 10 is not set. #[serde(default, skip_serializing_if = "Option::is_none", rename = "timeoutSeconds")] pub timeout_seconds: Option, }